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

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

04.04.2023, 20:22. Показов 23608. Ответов 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
6509 / 5764 / 1135
Регистрация: 11.10.2019
Сообщений: 15,407
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
6509 / 5764 / 1135
Регистрация: 11.10.2019
Сообщений: 15,407
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
7161 / 2349 / 354
Регистрация: 10.12.2013
Сообщений: 8,141
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
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru