Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232

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

04.04.2023, 20:22. Показов 11015. Ответов 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
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 11:34  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от KSergey9 Посмотреть сообщение
Не грубите незнакомым людям, разное случается.
Я просил нативное решение, где написана замена _itoa? Упс. Вы угрожаете?
Цитата Сообщение от KSergey9 Посмотреть сообщение
Уже написано же.
Где написано?
Цитата Сообщение от voral Посмотреть сообщение
вы спросили - я ответил.
А у вас я ничего не спрашивал..
Цитата Сообщение от voral Посмотреть сообщение
Ну, а либу ясновидения я забыл подключить
Ну а нафига я код в гит выложил. Всё просто делается, кому интересно тот мог бы потестить у себя и увидеть проблему, если соображалка работает.
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 11:51
Цитата Сообщение от pgb Посмотреть сообщение
Ну а нафига я код в гит выложил. Всё просто делается, кому интересно тот мог бы потестить у себя и увидеть проблему, если соображалка работает.
1 Т.е. вы обязываете желающего помочь потратить как можно больше времени?
2. Я скачал ваш код, но я не пользуюсь Windwos и ваш код не компилируется - прикажете его доработать, чтоб ответить на ваш вопрос, в котором вы поленились расписать проблему?
3. Как и в случае с PHP кодом вы пренебрегаете общепринятыми подходами к стилю кода (при чем я имею ввиду именно общепринятые - т.е. есть всякие споры табы vs пробелы, camelcase vs snake_case, где ставить открывающую блок скобку - я не про это, между ними все равно есть общее), но у вас свой путь и это еще дополнительно затрудняет читаемость..
4. Может у вас ошибки связаны конкретно с вашей системой (я вам уже рассказывал случай, когда ошибка возникала из-за глючной видео карты). И что искать?


А так код я посмотрел. Если разбирать то куча вопросов по нему. Но есть ли в этом смысл - учитывая ваш стиль общения?

PS Обратите внимание. Я здесь пытался удержаться в нормальном русле обсуждения про код, и именно вы начали опять свою тему скатывать в "вы ни чего серьезного не писали", "вы ни чего не понимаете"..... На хрен вы вообще на форуме что то пишите если вы такой офигенный гений? И что значило выше ваша фраза о том что вы в плюсах новичок?
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
12.05.2023, 12:06
Цитата Сообщение от pgb Посмотреть сообщение
Я просил нативное решение
Ликбез: нативным называется решение, предоставляемое непосредственно платформой/языком. Для С++ все нативные решения - они в std.

Цитата Сообщение от pgb Посмотреть сообщение
Вы угрожаете?
Угрожают не так, мил человек. Да и нафик ты такой сплющился, угрожать тебе Много чести
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 12:08  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
1 Т.е. вы обязываете желающего помочь потратить как можно больше времени?
Никого ничему не обязываю, кто захочет помочь тот поможет, за что я буду благодарен.
Цитата Сообщение от voral Посмотреть сообщение
2. Я скачал ваш код, но я не пользуюсь Windwos и ваш код не компилируется - прикажете его доработать, чтоб ответить на ваш вопрос, в котором вы поленились расписать проблему?
Всё компилируется. Если вы не умеете готовить, то не суп виноват, а повар..
Я указывал на проблемы, они сразу выявляются, при запуске теста всё видно.
Цитата Сообщение от voral Посмотреть сообщение
3. Как и в случае с PHP кодом вы пренебрегаете общепринятыми подходами к стилю кода (при чем я имею ввиду именно общепринятые - т.е. есть всякие споры табы vs пробелы, camelcase vs snake_case, где ставить открывающую блок скобку - я не про это, между ними все равно есть общее), но у вас свой путь и это еще дополнительно затрудняет читаемость..
Код хорошо читаем, никто кроме вас не жалуется.
Цитата Сообщение от voral Посмотреть сообщение
4. Может у вас ошибки связаны конкретно с вашей системой (я вам уже рассказывал случай, когда ошибка возникала из-за глючной видео карты). И что искать?
Это у таких как вы ошибки из видео карты и тд.
Цитата Сообщение от voral Посмотреть сообщение
А так код я посмотрел. Если разбирать то куча вопросов по нему. Но есть ли в этом смысл - учитывая ваш стиль общения?
А не надо мой код разбирать, разбирайте свой. Я лишь хочу написать ещё один удобный инструмент для своих разработок, если кому будет полезен, кто включится в разработку или будут помогать дельными советами как что сделать, буду только рад, а не стараться обосрать как вы обычно делаете, это мне только мешает, отвечать вам на ваши высеры..
Цитата Сообщение от voral Посмотреть сообщение
На хрен вы вообще на форуме что то пишите если вы такой офигенный гений? И что значило выше ваша фраза о том что вы в плюсах новичок?
Я занимаюсь делом, это раз, бывают проблемы с которыми сразу не получается разобраться поэтому хочется чтобы нашлись люди кто более опытнее которые могут что-то подсказать и тд. не всегда это происходит, но всё же я нахожу решения несмотря на негатив от некоторых участников форума.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
12.05.2023, 12:13
Цитата Сообщение от voral Посмотреть сообщение
2. Я скачал ваш код, но я не пользуюсь Windwos и ваш код не компилируется - прикажете его доработать, чтоб ответить на ваш вопрос, в котором вы поленились расписать проблему?
Цитата Сообщение от pgb Посмотреть сообщение
Всё компилируется. Если вы не умеете готовить, то не суп виноват, а повар..
Эта пять!

Даже не знаю, сочувствовать voral или "так ему и надо, сам напросился". Ведь даже по этой ветке было понятно\, что может быть только такой ответ.

pgb, слушай, как ты вообще живёшь? ну вот по жизни. Наверное сплошные сволочи кругом?
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 12:13
Цитата Сообщение от pgb Посмотреть сообщение
Всё компилируется. Если вы не умеете готовить, то не суп виноват, а повар..
Реально? test.cpp - это ваш тестовый код в этой теме
Bash
1
g++ -o test test.cpp -fpermissive -std=c++20 && ./test
Выдает (привожу начало выхлопа). Операционная системам Debian GNU/Linux расскажите как скомпилировать не меняя ваш код?
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
In file included from _calc.hpp:7,
                 from _interface.hpp:9,
                 from test.cpp:3:
_types.hpp: In function ‘STRING t::Type(dTYPE)’:
_types.hpp:497:5: warning: there are no arguments to ‘_itoa’ that depend on a template parameter, so a declaration of ‘_itoa’ must be available [-fpermissive]
  497 |     _itoa(vtp.Size()-1,lts,10);
      |     ^~~~~
_types.hpp: In instantiation of ‘STRING t::Type(dTYPE) [with dTYPE = ANY]’:
_types.hpp:563:13:   required from ‘void LINK::Init(dTYPE&) [with dTYPE = ANY]’
_types.hpp:621:14:   required from ‘ANY& ANY::operator=(dTYPE) [with dTYPE = ANY]’
_types.hpp:612:28:   required from here
_types.hpp:497:10: error: ‘_itoa’ was not declared in this scope
  497 |     _itoa(vtp.Size()-1,lts,10);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~
_types.hpp: In instantiation of ‘STRING t::Type(dTYPE) [with dTYPE = bool]’:
_types.hpp:563:13:   required from ‘void LINK::Init(dTYPE&) [with dTYPE = bool]’
_types.hpp:621:14:   required from ‘ANY& ANY::operator=(dTYPE) [with dTYPE = bool]’
_types.hpp:635:25:   required from here
_types.hpp:497:10: error: ‘_itoa’ was not declared in this scope
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 12:14  [ТС]
Цитата Сообщение от KSergey9 Посмотреть сообщение
Ликбез: нативным называется решение, предоставляемое непосредственно платформой/языком. Для С++ все нативные решения - они в std.
Сами себе противоречите. Вот именно нативным является решение написанное на самом языке, без использования библиотек, а std это библиотека, хоть и признана стандартной, использования её функцией это не нативное решение реализованное непосредственно языком. Вот без std напишите нативно функцию _itoa тогда это будет нативным решением.
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 12:16
Цитата Сообщение от KSergey9 Посмотреть сообщение
Даже не знаю, сочувствовать voral
Да не надо - я осознавал риски отвечая в этой теме . Я с этим автором уже достаточно пообщался он еще лучший в мире php фреймворк пилит.

Добавлено через 1 минуту
Цитата Сообщение от pgb Посмотреть сообщение
поэтому хочется чтобы нашлись люди кто более опытнее которые могут что-то подсказать и тд. не всегда это происходит,
И их вы заставляете тратить время....
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 12:20  [ТС]
Цитата Сообщение от KSergey9 Посмотреть сообщение
слушай, как ты вообще живёшь? ну вот по жизни. Наверное сплошные сволочи кругом?
Замечательно живу. Кто не тупит тех уважаю.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
12.05.2023, 12:21
Цитата Сообщение от pgb Посмотреть сообщение
без использования библиотек, а std это библиотека,
В школу! Учиться!! Потом только голос подавать.
До просветления читать как минимум содержание у книг про С++, в стандарт даже не посылаю. Быть может после сотого прочтения содержания дойдёт, что std - это неотъемлемая часть именно языка C++ наравне с фигурными скобочками.
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 12:21
pgb, внезапно, но здесь так же как и в PHP вам может помочь юниттестирование чтобы избежать ситуации "ой внезапно отвалилось и работает не так" в процессе разработки.
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 12:21  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
И их вы заставляете тратить время....
Никого ничего не заставляю, не хотите помочь не надо. Лично вы мне только мешаете постоянно..
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
12.05.2023, 12:23
Цитата Сообщение от pgb Посмотреть сообщение
Лично вы мне только мешаете постоянно..
пацталом
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 12:26
pgb, _itoa это, по вашему, нативная?
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 12:27  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
внезапно, но здесь так же как и в PHP вам может помочь юниттестирование чтобы избежать ситуации "ой внезапно отвалилось и работает не так" в процессе разработки.
Я уже высказывал своё мнение по юнит тестам. С ними только хуже.. это вам не шлак писать для заказчика.. Короче тебе надо ты и делай, мне это не надо и больше не заикайся об этом.
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 12:29
Цитата Сообщение от pgb Посмотреть сообщение
С ними только хуже..
Можете обосновать?
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 12:31  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
_itoa это, по вашему, нативная?
Если данная функция реализована в самом коде, то нативная. Если она подключается из библиотеки, то это уже стороннее решение, от чего могут быть проблемы при переходе на другую версию языка и тд.

Добавлено через 1 минуту
Цитата Сообщение от voral Посмотреть сообщение
Можете обосновать?
Уже обосновывал, на этом или другом форуме. Сейчас у меня нет желания тут опять всё расписывать.
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 12:51
Цитата Сообщение от pgb Посмотреть сообщение
Если данная функция реализована в самом коде, то нативная. Если она подключается из библиотеки, то это уже стороннее решение, от чего могут быть проблемы при переходе на другую версию языка и тд.
1 Прочитайте внимательно вывод компиляции, что я привел выше.
2 Почитайте еще раз внимательно и что написали выше и, если не верите, почитайте внимательно, что такое std. Т.е. по отношению к языку C++ std - это нативная библиотека - она неразрывна, в отличии от _itoa. Не подскажите в каком стандарте языка она описана?

Вот вам сайт найдите мне на нем упоминание о _itoa

Добавлено через 4 минуты
Цитата Сообщение от pgb Посмотреть сообщение
Уже обосновывал, на этом или другом форуме. Сейчас у меня нет желания тут опять всё расписывать.
все что вы сказали: "настоящие мужики пишут без багов". Но увы, вы сами этого ни разу не продемонстрировали. Значит мой совет верный - вам бы это помогло уменьшить время на постоянные поиски ответа на вопрос "что опять сломалось в моем чудо коде"

Тут просто в принципе "хуже" от применения любого вида тестирования быть не может. Единственно на начальном этапе приходится потратить немного времени на написание теста, но это дает так же и положительный эффект - заставляет внимательнее продумывать ситуации как должна вести себя (в случае юнит тестирования) та или иная функция. А в долгосрочной перспективе это экономит время.
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
12.05.2023, 19:20  [ТС]
С массивами разобрался.

voral, начинаю делать работу с диском, слабо написать юнит тесты

Для профи вопрос, какие есть готовые инструменты именно в C++?
Я уже делал работу с диском с такими заголовочными файлами как <sys/types.h>, <sys/stat.h>, <dirent.h>
Хотелось бы что-то посвежее, есть что для C++ чтобы удобно было получать список разделов, разную инфу, свободное место на диске и тд.
0
3055 / 1455 / 264
Регистрация: 16.03.2008
Сообщений: 6,485
Записей в блоге: 2
12.05.2023, 21:55
Цитата Сообщение от pgb Посмотреть сообщение
voral, начинаю делать работу с диском, слабо написать юнит тесты
В этом нет проблем. Более того не далее как в прошлом году приходилось вникать в вопрос тестирования Java приложения как раз таки работающим с файловой системой. Тупо лень было каждый раз ручками воспроизводить различные ситуации.

При этом вы должны понимать: нет необходимости покрывать тестами функции стандартной библиотеки для работы с ФС. Как и с любыми внешними, по отношению к вашему проекту, источниками информации.

Тестами покрывается только ваш код. Т.е. вы делаете некую функцию, которая выполняет некий функционал. вот именно этот функционал и надо проверять. С файловой системой, как и, например с БД, есть особенности, но это только особенности - а так обычное тестирование (ну если, конечно, вы знаете что это). По возможности мокаете, а дальше дело техники.

Добавлено через 4 минуты
Цитата Сообщение от pgb Посмотреть сообщение
Хотелось бы что-то посвежее
Как вариант можете присмотреться к библиотеке boost сразу оговорсь (а то вы ведь опять шарахнетесь "от сторонней") Библиотека точно также тесно связана с С++ и некоторые вещи из нее бывает переходят в стандарт C++. Там много удобного.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2023, 21:55
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru