|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Пишу свою библиотеку C++04.04.2023, 20:22. Показов 17491. Ответов 123
Метки нет (Все метки)
Приветствую!
Кто хочет поучится программированию на C++ за одно написать нужные классы и функции для будущих своих разработок, предлагаю присоединиться к разработке своей библиотеки C++. Зачем я это делаю? Кто-то скажет есть же уже готовые библиотеки, зачем изобретать велосипед и тд. Во-первых в существующих много лишнего чем вы никогда не воспользуетесь и нужно их изучать подстраиваться под их синтаксисы и тд. проблемы при отладке т.к. не знаете как что работает и тп. Во-вторых в своих знаешь, что и как работает, при необходимости можно доработать, написаны только самые основные нужные функции и классы с удобным для себя синтаксисом. В-третьих при создании своей библиотеки вы изучаете нативные функции и возможности самого языка программирования и на примерах пишите по своему, тестируете и оттачиваете свои мастерство и знания, которые в последствии вам помогут при создании своих будущих проектов. В перспективе я планирую написать с помощью своей библиотеки базу данных, язык программирования, веб-сервер. Ещё есть мысль с применением графической библиотеки wxWidgets(возможно другой) написать заголовочный файл для быстрого создания окон, элементов окна и др. https://github.com/arbnet/CppLibrary
1
|
|
| 04.04.2023, 20:22 | |
|
Ответы с готовыми решениями:
123
Создать свою библиотеку в С++ Создать свою библиотеку Разработать свою библиотеку |
| 19.05.2023, 11:54 | ||
|
0
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 19.05.2023, 14:15 [ТС] | |||
|
Я писал простые приложения с готовыми библиотеками и тд. всё устраивало до поры до времени. Ты вот писал свой язык программирования, свою базу данных, свой сервер, программу для блокчейна и тп. вот тогда понял бы меня. А я писал, не на C++ правда, поэтому решил делать нативно, тем-более C++ так больше позволяет делать чем в других языках. Что касается моих вопросов, несмотря на опыт, какой проект большой или маленький, не важно, то возникают проблемки, пустяковые, глупые, сразу не можешь понять в чём дело, иногда быстро решаешь задачу, а иногда долго бьёшься и не можешь понять в чём дело, со стороны выглядит как примитивный вопрос, но малу по малу такие вопросы решаются и дело движется... А ты и другие не понимаете, что ваши мнения, фантазии и иллюзии мне не интересны. Отвечать по теме вот, что от вас требуется, не можете ответить не надо флудить, отвлекать от дел.. Из за таких, мне тут накидали каких то минусов, назвали нарушителем, при этом писав всякую тупость в моих темах, флудить это для вас норма, и когда таким говоришь, что они несут пургу, то обижаются, вместо того чтобы вникнуть в задачу и ответить по теме. Алексей1153, Вам огромное спасибо. Побольше бы таких как вы, несмотря на своё мнение, что я хожу по граблям всё же подсказываете, что и как лучше сделать. Респект и уважуха. Сегодня те предупреждения не появлялись, продолжаю разработку. Добавлено через 19 минут
0
|
|||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|
| 19.05.2023, 14:24 | |
|
pgb, так они, эти ошибки, когда показываются ? При компиляции? При полном ребилде всегда показываются ?
или это просто intellisence местный мозги делает? Какая IDE, кстати ?
0
|
|
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 19.05.2023, 14:35 [ТС] | |||
|
Вот вопрос. Присваиваю двойной символ wchar_t а срабатывает оператор для простого char, хотя перегрузки оператора= для обоих типов есть. Косяк компилятора? Не может различать символьные типы?
0
|
|||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
||||||||
| 19.05.2023, 14:53 | ||||||||
operator=(const char*)
0
|
||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||||||
| 19.05.2023, 14:58 [ТС] | |||||||
0
|
|||||||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|
| 19.05.2023, 15:10 | |
|
pgb,
#include <windows.h> //тут есть определение CHAR и WCHAR (-> windef.h -> winnt.h) #include "_types.hpp" //и тут есть определение CHAR и WCHAR ну, ты сам себе злой Буратино, как говорится ![]() это тянет на UB Вообще, я бы закладывался только на UNICODE (ANSI нынче никому не сдался) , а при его отсутствии не разрешал бы компиляцию. Тогда всякие TCHAR не нужны. Будут просто char и wchar_t явно именно там, где они и нужны. А не в зависимости от макроса
0
|
|
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 19.05.2023, 15:34 [ТС] | |||
|
0
|
|||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|||
| 19.05.2023, 15:45 | |||
const char* прекрасно живёт и будет жить. В том числе для хранения utf8. Я же не об этом, а о том, что не нужно на макрос UNICODE закладыватьсятот же Qt в своих строках QString хранит wchar_t , но при этом повсюду реализована неявная перекодировка unicode<->utf8 там, где это требуется Добавлено через 55 секунд
0
|
|||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 19.05.2023, 15:58 [ТС] | ||
|
И по моему тут нет неопределённого поведения при использовании макроса UNICODE для переключения типа, наоборот это делает исходник более гибким, адаптируемым под нужную среду.
0
|
||
|
59 / 3 / 0
Регистрация: 19.03.2016
Сообщений: 19
|
||
| 19.05.2023, 17:25 | ||
|
Разновидность прокрастинации. Вместо решения конкретных задач с помощью готовых инструментов, пациент создает велосипеды, на которых, как он себя убедил, он будущем обязательно сделает что-то "настоящее". Конкретно этот пациент был хорошо известен на Delphi - форумах (на покойном sql.ru, например), ну вот теперь он решил сменить инструмент.
0
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 19.05.2023, 20:49 [ТС] | |||
Вот честно никогда там не регистрировался и даже по моему не был.На именно Delphi ничего не писал, писал на паскале в среде Lazarus похож на Delphi но не делфи, хотя библиотеки многие совместимы. В то время работал на заводе и ни на каких форумах не сидел, писал модули для приложения похожем на 1C для ИТРшиков завода, ещё одно приложение написал для БТД сканирования чертежей, их поиска в электронном виде, так же печать наклеек по чертежам. Тут зарегистрировался 2015 это как раз когда заканчивал работу над модулями для приложения типа 1C хотел ещё для себя что-то сделать, смотрю по первым темам, компиляцию какую-то искал и тд. Потом переключился на создание фреймворка для сайтов, кстати надо его уже запускать, вот разберусь с C++ а то переключусь и забуду проблемы которые сейчас надо решить. Добавлено через 38 минут Решил вместо UNICODE использовать константу TYPECHAR 1 для CHAR, и 2 для WCHAR соответственно. С использованием константы UNICODE какой-то конфликт, не правильно работает.
0
|
|||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|||||||||||
| 19.05.2023, 21:02 | |||||||||||
|
pgb, вообще, всё, что пересекается с винапи, нужно иначе называть, либо в неймспейс засовывать.
с константой опять на грабли. Ну, будут магические константы 1 и 2 по коду размазаны. Это плохо. Поэтому, их тоже лучше именовать. И это опять макросы. А я бы лучше выбрал enum class
0
|
|||||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 19.05.2023, 21:45 [ТС] | ||
|
0
|
||
|
86 / 60 / 12
Регистрация: 06.06.2013
Сообщений: 216
|
|||
| 19.05.2023, 21:52 | |||
А еще мне кажется, в каждом из нас живет свой маленький pgb
0
|
|||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
||||
| 19.05.2023, 22:17 | ||||
|
Добавлено через 1 минуту
1
|
||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||||||||
| 19.05.2023, 22:41 [ТС] | ||||||||
|
Мне ещё не понятно как это работает std::forward<F>(f)(); А что мне не понятно я стараюсь не использовать, а по возможности сделать по своему без включения стороннего. И если условие в constexpr не выполняется, то код такого условия точно не будет включатся в компилируемый код?
0
|
||||||||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
||
| 19.05.2023, 22:43 | ||
|
А вообще, в данном конкретном случае проброс и не нужен особо-то. Если смущает, можешь убрать. Я его на автомате поставил
например, если снаружи в функцию передали ссылку, то без проброса при использовании это тоже будет ссылка. А вот если передали временное значение (rvalue), то без проброса это будет просто ссылка. Кратно я это не сумею объяснить, загляни вот сюда, например
0
|
||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|||||||||||
| 19.05.2023, 22:49 | |||||||||||
|
pgb, вообще, всё, что пересекается с винапи, нужно иначе называть, либо в неймспейс засовывать.
с константой опять на грабли. Ну, будут магические константы 1 и 2 по коду размазаны. Это плохо. Поэтому, их тоже лучше именовать. И это опять макросы. А я бы лучше выбрал enum class
0
|
|||||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||||||
| 20.05.2023, 20:43 [ТС] | |||||||
|
Алексей1153,
А если где-то в коде нужно переключить текущий выбор, то что тогда? С константой это просто. Вот честно, думал, немного тестил, но не катят как то мне функция для перехвата исключений. Ну не знаю как так сделать. Знаю как убрать предупреждение
А так как файл ошибок _error.hpp подключать надо до типов чтобы макросы работали, в которых и будет вызываться t::Type(var) для определения типа исключения не вызванного моим классом Error. Возникает проблемка.. как через extern объявить шаблонную функцию в пространстве имён t??
0
|
|||||||
| 20.05.2023, 20:43 | |
|
Как создать свою библиотеку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|