|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Пишу свою библиотеку C++04.04.2023, 20:22. Показов 10308. Ответов 123
Метки нет (Все метки)
Приветствую!
Кто хочет поучится программированию на C++ за одно написать нужные классы и функции для будущих своих разработок, предлагаю присоединиться к разработке своей библиотеки C++. Зачем я это делаю? Кто-то скажет есть же уже готовые библиотеки, зачем изобретать велосипед и тд. Во-первых в существующих много лишнего чем вы никогда не воспользуетесь и нужно их изучать подстраиваться под их синтаксисы и тд. проблемы при отладке т.к. не знаете как что работает и тп. Во-вторых в своих знаешь, что и как работает, при необходимости можно доработать, написаны только самые основные нужные функции и классы с удобным для себя синтаксисом. В-третьих при создании своей библиотеки вы изучаете нативные функции и возможности самого языка программирования и на примерах пишите по своему, тестируете и оттачиваете свои мастерство и знания, которые в последствии вам помогут при создании своих будущих проектов. В перспективе я планирую написать с помощью своей библиотеки базу данных, язык программирования, веб-сервер. Ещё есть мысль с применением графической библиотеки wxWidgets(возможно другой) написать заголовочный файл для быстрого создания окон, элементов окна и др. https://github.com/arbnet/CppLibrary
1
|
|
| 04.04.2023, 20:22 | |
|
Ответы с готовыми решениями:
123
Создать свою библиотеку в С++ Создать свою библиотеку Разработать свою библиотеку |
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,057
|
||||||||||||
| 09.05.2023, 18:49 | ||||||||||||
[] , то оператор delete тоже должен быть с нимиДобавлено через 1 минуту то есть
0
|
||||||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||||||||||||
| 09.05.2023, 19:03 [ТС] | ||||||||||||
|
Хочу сделать так чтобы в ANY можно было присвоить "константную строку". Присвоение работает. Но когда я присваиваю другое значение, то указатель на прежнее значение должно удалится, но возникает ошибка. Перепробовал уже по всякому. В методе Clear() switch -> case 14:
0
|
||||||||||||
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,057
|
|||
| 09.05.2023, 19:10 | |||
|
pgb, указатель, полученный от литерала, нельзя удалять. Просто замени на новый
Добавлено через 1 минуту
0
|
|||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||||||||||||
| 09.05.2023, 20:15 [ТС] | |||||||||||||
Если делаю ссылкой
Добавлено через 1 минуту Добавлено через 41 минуту Проблему решил, двигаюсь дальше.
0
|
|||||||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||||||
| 10.05.2023, 20:31 [ТС] | ||||||
|
Непонятная ошибка. Тестирую класс ANY в котором добавлен operator++. Объекту ANY присваиваем значение объекта DATETIME, затем увеличиваем через ++. Возникает ошибка удаления ссылки на объект DATETIME в деструкторе.
Я так понимаю создаётся несколько объектов, один удаляется нормально, а второй уже удалить не может. Пока не могу отловить конкретную причину. Тестовый код
С инкрементом DATETIME разобрался. Сделал ещё описание типов.
0
|
||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||||||
| 11.05.2023, 19:09 [ТС] | ||||||
|
Добрался до ассоциативного массива _array.hpp Associative
Тест
0
|
||||||
| 12.05.2023, 08:37 | |
|
pgb, вы вроде считаете себя опытным, а вопросы про ошибки ставите как чайник.
В чем выражается ошибка? Что в консоли? PS ваша либа без правок не будет компилироваться у всех. _itoa в стандартных плюсах не определена. Почему не std::to_string?
0
|
|
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,057
|
|
| 12.05.2023, 08:41 | |
|
0
|
|
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||||
| 12.05.2023, 09:00 [ТС] | ||||
|
К тому же в самой библиотеке на глобальном уровне я using namespace std; не использую только в пространстве имён i интерфейса, пока его не доделал, поэтому в тестовых примерах использую.
0
|
||||
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,057
|
||
| 12.05.2023, 09:02 | ||
|
0
|
||
| 12.05.2023, 09:07 | ||||
Смешно же. Тогда вообще не пользуйтесь этим ЯП. Просто на пустом месте вы теряете кроссплатформенность. Т.е. если "нативно" то как раз _itoa - нарушает это ваше правило.
0
|
||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 12.05.2023, 09:18 [ТС] | |||
|
Добавлено через 4 минуты
0
|
|||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|||
| 12.05.2023, 09:25 | |||
Добавлено через 58 секунд
0
|
|||
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,057
|
||
| 12.05.2023, 09:28 | ||
<charconv>std::from_chars std::to_chars не очень удобные, как по мне, но заявлены очень быстрыми
0
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 12.05.2023, 09:34 [ТС] | |||
|
Добавлено через 4 минуты
0
|
|||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||||
| 12.05.2023, 09:36 | ||||
|
Не по теме:
Вообще С++ на мой взгляд последние несколько лет внезапно развивается в очень здравом направлении; если ограничивать себя в подмножестве используемых конструкций - то практически бейсик (в хорошем смысле) получится, только быстрый. (бейсик это так, по старой памяти; что там сейчас бизнес-программист фрейндли?). Добавлено через 1 минуту
0
|
||||
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,057
|
|
| 12.05.2023, 09:44 | |
|
KSergey9, возможно, пытаются порог вхождения снизить. Но скорее - просто стараются не сломать старое, добавляя более удобное новое
![]() А я и std::to_string не стесняюсь пользоваться. И std::stringstream. А упомянуте две функции - это для случаев, где скорость и память критически важны
0
|
|
| 12.05.2023, 10:06 | ||||
|
Добавлено через 15 минут Вы пишите не в болге, где рассчитано на то что автор просто делится своими переживаниями, а на форуме, где автор обычно ищет помощь в решении своей проблемы.
0
|
||||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|||||||
| 12.05.2023, 10:30 | |||||||
|
Банально хотят сделать язык приспособленным к существенно большему кругу задач. Гонять байтики изначально было очень клёво на Си (и плюсах). Но когда ты пытаешься использовать в клиентских бизнес-задачах, то внезапно выясняется, что библиотека неимоверно скудна на повседневно нужные там операции. Хуже того, ты ты всё равно вынужден постоянно очень внимательно следить за байтиками, хотя задача вообще про друое. По-началу стали втаскивать функциональщину, красноглазики писали кипятком. Но, по счастью, в комитете, очевидно, появились люди, которые быстро смекнули, что красноглазики они прикольные конечно, но только в своей незаметно узкой прослойке и, главное, это история вообще не про деньги. И тогда в 14 и 17 стандарты стали подвозить много именно бизнес-фич, и к 20 это только набирает обороты, что меня очень радует. Разумеется, для красноглазиков тоже очень много чего подвозят, без них в общем-то тоже никак нам не жить на самом деле, симбиоз это хорошо. ![]() PS Особенно меня умиляет история длинною в несколько десятилетий(!!), когда наконец-то в контейнеры подвезли contains() И длина этой истории - это очень яркий признак засилия красноглазиков. Я лично не раз с такими общался лично на протяжении буквально не одного десятилетия (ну ок, двух), которые совершенно искренне не могли понять в чем проблема вот такого кода, которого было весьма существенное количество
0
|
|||||||
|
фрилансер
6454 / 5655 / 1129
Регистрация: 11.10.2019
Сообщений: 15,057
|
||
| 12.05.2023, 11:00 | ||
Сам так часто поступаю
0
|
||
| 12.05.2023, 11:00 | |
|
Помогаю со студенческими работами здесь
60
Как создать свою библиотеку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|