Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/37: Рейтинг темы: голосов - 37, средняя оценка - 4.59
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232

Пишу свою библиотеку C++

04.04.2023, 20:22. Показов 17158. Ответов 123
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Кто хочет поучится программированию на C++ за одно написать нужные классы и функции для будущих своих разработок, предлагаю присоединиться к разработке своей библиотеки C++.

Зачем я это делаю? Кто-то скажет есть же уже готовые библиотеки, зачем изобретать велосипед и тд.
Во-первых в существующих много лишнего чем вы никогда не воспользуетесь и нужно их изучать подстраиваться под их синтаксисы и тд. проблемы при отладке т.к. не знаете как что работает и тп. Во-вторых в своих знаешь, что и как работает, при необходимости можно доработать, написаны только самые основные нужные функции и классы с удобным для себя синтаксисом. В-третьих при создании своей библиотеки вы изучаете нативные функции и возможности самого языка программирования и на примерах пишите по своему, тестируете и оттачиваете свои мастерство и знания, которые в последствии вам помогут при создании своих будущих проектов.

В перспективе я планирую написать с помощью своей библиотеки базу данных, язык программирования, веб-сервер. Ещё есть мысль с применением графической библиотеки wxWidgets(возможно другой) написать заголовочный файл для быстрого создания окон, элементов окна и др.

https://github.com/arbnet/CppLibrary
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.04.2023, 20:22
Ответы с готовыми решениями:

Создать свою библиотеку в С++
Разработать библиотеку в C++ для двумерного массива

Создать свою библиотеку
Создать свою библиотеку в с++,двумерный массив ,что бы выполнялось условие сортировки и поиска элемента в этом двумерном массиве

Разработать свою библиотеку
Разработать библиотеку для работы со структурой данных, для работы с двумерным массивом

123
фрилансер
 Аватар для Алексей1153
6495 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
20.05.2023, 21:06
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от pgb Посмотреть сообщение
А если где-то в коде нужно переключить текущий выбор, то что тогда? С константой это просто.
не понял вопрос. Это и так константа

Цитата Сообщение от pgb Посмотреть сообщение
Почитал, нифига не понял
я ж говорю, в данном случае я просто на автомате написал форвард, он тут не нужен, ведь у тебя, скорее всего, одни лямбды будут. Сделай просто вызов f();

Цитата Сообщение от pgb Посмотреть сообщение
вот из-за таких танцев
эти танцы в серьёзном рабочем коде серьёзно влияют на повышение производительности. Только и делов.

Цитата Сообщение от pgb Посмотреть сообщение
Ну не знаю как так сделать.
я же показал в посте, как это можно сделать

Цитата Сообщение от pgb Посмотреть сообщение
А так как файл ошибок _error.hpp подключать надо до типов чтобы макросы работали
для начала нужно везде исправить логику включений файлов. Не должно быть такого, чтобы требовалось перед каким-то инклудом не забывать другой инклуд добавить. Если это нужно, то инклуд УЖЕ должен быть вставлен в зависимый заголовок. И тогда заголовки становятся самодостаточными, их можно включать хоть куда и в хоть каком сочетании и порядке.

Но это нужно закладывать с самого начала, а сейчас по живому резать и исправлять может быть тяжко А, может, и нет

Цитата Сообщение от pgb Посмотреть сообщение
как через extern объявить шаблонную функцию в пространстве имён t
никак. Шаблон должен лежать в заголовке

Добавлено через 7 минут
Цитата Сообщение от pgb Посмотреть сообщение
необходимо включить ключевое слово <typeinfo> перед использованием typeid
а на каком примере это возможно повторить ?
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
21.05.2023, 07:21  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
эти танцы в серьёзном рабочем коде серьёзно влияют на повышение производительности. Только и делов.
Я просто хотел понять для чего этот std::forward используется, возможно вещь нужная, я просто не могу понять как это работает.
Цитата Сообщение от Алексей1153 Посмотреть сообщение
для начала нужно везде исправить логику включений файлов. Не должно быть такого, чтобы требовалось перед каким-то инклудом не забывать другой инклуд добавить. Если это нужно, то инклуд УЖЕ должен быть вставлен в зависимый заголовок. И тогда заголовки становятся самодостаточными, их можно включать хоть куда и в хоть каком сочетании и порядке.
Кстати вчера думал об этом. Что нужно разделить объявления и функционал на два файла hpp и cpp. Чтобы включать заголовки там где нужно и никаких extern и тп. По началу так и начал делать, но из-за простого кода подумалось, что не нужно разделение, сейчас вижу что всё таки надо было разделить.
Цитата Сообщение от Алексей1153 Посмотреть сообщение
а на каком примере это возможно повторить ?
На файле _error.hpp Я так понял дело в том что typeid находится в макросе и интеллектуальная система в VSC как-то неверно это обрабатывает несмотря на включенный заголовок. Когда заменил на свою функцию, предупреждение пропало. В другом компиляторе пробовал там этих предупреждений не было зато были другие, тоже не понятно почему. Хотя всё компилируется нормально.
0
фрилансер
 Аватар для Алексей1153
6495 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
21.05.2023, 10:36
Цитата Сообщение от pgb Посмотреть сообщение
Я просто хотел понять для чего этот std::forward используется, возможно вещь нужная, я просто не могу понять как это работает.
просто ты не пользуешься правыми ссылками (&&) - и зря. Это же, кстати, и правила пяти касается. Я, наверное, не смогу объяснить понятнее, чем в статье по ссылке.

глянь ещё вот тут

если кратко, то экземпляр T&& , если ничего с ним не делать, будет передан в аргументы функции или оператора по ссылке, а не по правой ссылке. И для "сохранения правоссыльности" его необходимо обернуть в std::move. Но для параметра шаблона заранее неизвестно, будет это левая ссылка или правая ссылка. И вот этот std::forward<T> занимается тем, что правую ссылку он std::move, а всё остальное - как обычно std::forward - требуется только в шаблонах. "Снаружи" он бесполезен

Цитата Сообщение от pgb Посмотреть сообщение
На файле _error.hpp
не повторяется
https://onlinegdb.com/ok-dR60Ki
0
 Аватар для volodin661
7092 / 2323 / 352
Регистрация: 10.12.2013
Сообщений: 8,005
12.12.2025, 14:11
Цитата Сообщение от pgb Посмотреть сообщение
В перспективе я планирую написать с помощью своей библиотеки базу данных, язык программирования, веб-сервер. Ещё есть мысль с применением графической библиотеки wxWidgets(возможно другой) написать заголовочный файл
Вольноопределяющийся Марек сочинял впрок героические подвиги батальона, и видно было, что ему доставляет большое удовольствие заглядывать в будущее.

Наш батальон не может сразу выиграть мировую войну. Nihil nisi bene / Ничего, кроме хорошего (лат.) /. Для обстоятельного историографа, как я, главное - составить план наших побед. Наш батальон нападает на спящий неприятельский лагерь. Каждым из наших солдат выбирает себе одного вражеского солдата и со всеи силой втыкает ему штык в грудь. Прекрасно отточенный штык входит как в масло, только иногда затрещит ребро. Спящие враги дергаются всем телом, на миг выкатывают удивленные, но уже ничего не видящие глаза, хрипят и вытягиваются. На губах спящих врагов выступает кровавая пена. Этим дело заканчивается, и победа на стороне нашего батальона. А вот еще лучше. Будет это приблизительно месяца через три. Наш батальон возьмет в плен русского царя, но об этом, пан Ванек, мы расскажем несколько позже.
Необходимо будет подготовить еще статью о наших павших. История батальона не должна складываться только из сухих фактов о победах, которых я наперед наметил около сорока двух. Вы, например, пан Ванек, падете у небольшой речки, а вот Балоун, который так дико глазеет на нас, погибнет своеобразной смертью, не от пули, не от шрапнели и не от гранаты. Он будет удавлен арканом, закинутым с неприятельского самолета как раз в тот момент. когда будет пожирать обед своего обер-лейтенанта Лукаша.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.12.2025, 14:11

Как создать свою библиотеку?
Как создать свою библиотеку со своими функциями и включить ее в основную программу?

Как создать свою библиотеку
Есть несколько понятий в которых путаюсь. библиотека - какой-то файл заголовочный файл - файл с объявлениями (описаниями) как...

Как правильно подключить свою библиотеку?
Здравствуйте всем. Я использую Visual Studio. В одном решении у меня находится проект библиотеки SEAL и проект SEALStart, из которого я...

Как написать свою библиотеку функций?
Я только начинаю изучать программирование на С++, параллельно разбираюсь с ООП. Вообще идеи ООП понятны и нравятся мне. Удобно разложить...

Как добавить свою библиотеку в стандартные С++
Доброго времени суток, уважаемые форумчане! Недавно стало интересно, можно ли добавить свою библиотеку к стандартным библиотекам с++. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
124
Ответ Создать тему
Новые блоги и статьи
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли Введение: Экологический рынок как игра с нулевой суммой Традиционная экология долгое время. . .
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ Введение: Синдром «цифрового учебника» Современные большие языковые модели (LLM) обладают колоссальным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru