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

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

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

Author24 — интернет-сервис помощи студентам
Приветствую!
Кто хочет поучится программированию на 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++ для двумерного массива

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

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

122
 Аватар для pgb
-104 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,171
12.05.2023, 11:34  [ТС]
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от KSergey9 Посмотреть сообщение
Не грубите незнакомым людям, разное случается.
Я просил нативное решение, где написана замена _itoa? Упс. Вы угрожаете?
Цитата Сообщение от KSergey9 Посмотреть сообщение
Уже написано же.
Где написано?
Цитата Сообщение от voral Посмотреть сообщение
вы спросили - я ответил.
А у вас я ничего не спрашивал..
Цитата Сообщение от voral Посмотреть сообщение
Ну, а либу ясновидения я забыл подключить
Ну а нафига я код в гит выложил. Всё просто делается, кому интересно тот мог бы потестить у себя и увидеть проблему, если соображалка работает.
0
2741 / 1367 / 254
Регистрация: 16.03.2008
Сообщений: 6,181
Записей в блоге: 2
12.05.2023, 11:51
Цитата Сообщение от pgb Посмотреть сообщение
Ну а нафига я код в гит выложил. Всё просто делается, кому интересно тот мог бы потестить у себя и увидеть проблему, если соображалка работает.
1 Т.е. вы обязываете желающего помочь потратить как можно больше времени?
2. Я скачал ваш код, но я не пользуюсь Windwos и ваш код не компилируется - прикажете его доработать, чтоб ответить на ваш вопрос, в котором вы поленились расписать проблему?
3. Как и в случае с PHP кодом вы пренебрегаете общепринятыми подходами к стилю кода (при чем я имею ввиду именно общепринятые - т.е. есть всякие споры табы vs пробелы, camelcase vs snake_case, где ставить открывающую блок скобку - я не про это, между ними все равно есть общее), но у вас свой путь и это еще дополнительно затрудняет читаемость..
4. Может у вас ошибки связаны конкретно с вашей системой (я вам уже рассказывал случай, когда ошибка возникала из-за глючной видео карты). И что искать?


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

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

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

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

pgb, слушай, как ты вообще живёшь? ну вот по жизни. Наверное сплошные сволочи кругом?
0
2741 / 1367 / 254
Регистрация: 16.03.2008
Сообщений: 6,181
Записей в блоге: 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
-104 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,171
12.05.2023, 12:14  [ТС]
Цитата Сообщение от KSergey9 Посмотреть сообщение
Ликбез: нативным называется решение, предоставляемое непосредственно платформой/языком. Для С++ все нативные решения - они в std.
Сами себе противоречите. Вот именно нативным является решение написанное на самом языке, без использования библиотек, а std это библиотека, хоть и признана стандартной, использования её функцией это не нативное решение реализованное непосредственно языком. Вот без std напишите нативно функцию _itoa тогда это будет нативным решением.
0
2741 / 1367 / 254
Регистрация: 16.03.2008
Сообщений: 6,181
Записей в блоге: 2
12.05.2023, 12:16
Цитата Сообщение от KSergey9 Посмотреть сообщение
Даже не знаю, сочувствовать voral
Да не надо - я осознавал риски отвечая в этой теме . Я с этим автором уже достаточно пообщался он еще лучший в мире php фреймворк пилит.

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

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

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

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

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

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

Для профи вопрос, какие есть готовые инструменты именно в C++?
Я уже делал работу с диском с такими заголовочными файлами как <sys/types.h>, <sys/stat.h>, <dirent.h>
Хотелось бы что-то посвежее, есть что для C++ чтобы удобно было получать список разделов, разную инфу, свободное место на диске и тд.
0
2741 / 1367 / 254
Регистрация: 16.03.2008
Сообщений: 6,181
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru