|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Пишу свою библиотеку C++04.04.2023, 20:22. Показов 24068. Ответов 123
Метки нет (Все метки)
Приветствую!
Кто хочет поучится программированию на C++ за одно написать нужные классы и функции для будущих своих разработок, предлагаю присоединиться к разработке своей библиотеки C++. Зачем я это делаю? Кто-то скажет есть же уже готовые библиотеки, зачем изобретать велосипед и тд. Во-первых в существующих много лишнего чем вы никогда не воспользуетесь и нужно их изучать подстраиваться под их синтаксисы и тд. проблемы при отладке т.к. не знаете как что работает и тп. Во-вторых в своих знаешь, что и как работает, при необходимости можно доработать, написаны только самые основные нужные функции и классы с удобным для себя синтаксисом. В-третьих при создании своей библиотеки вы изучаете нативные функции и возможности самого языка программирования и на примерах пишите по своему, тестируете и оттачиваете свои мастерство и знания, которые в последствии вам помогут при создании своих будущих проектов. В перспективе я планирую написать с помощью своей библиотеки базу данных, язык программирования, веб-сервер. Ещё есть мысль с применением графической библиотеки wxWidgets(возможно другой) написать заголовочный файл для быстрого создания окон, элементов окна и др. https://github.com/arbnet/CppLibrary
1
|
|
| 04.04.2023, 20:22 | |
|
Ответы с готовыми решениями:
123
Создать свою библиотеку в С++ Создать свою библиотеку Разработать свою библиотеку |
|
86 / 60 / 12
Регистрация: 06.06.2013
Сообщений: 216
|
||
| 12.05.2023, 22:48 | ||
|
Не могу сказать, что мои знания в языках программирования глубже, чем у ТС (по крайней мере, своего фреймворка у меня нет), но и на работе меня держат не в качестве программиста - занимаюсь С++ скорее в качестве бонуса к основной профессии. Но когда-то тоже страдал такой фигней - что-то не устроило в <complex>, и я написал свой класс комплексных чисел - кривой, косой, но зато родной, со своим Удобным Синтаксисом. И даже обернул его в dll, шоб пользоваться, не задумываясь. Но задумываться приходилось снова и снова. Недавно откопал его и ужаснулся. И так как жизнь меня ничему не учит, переписал... Ну вот сейчас-то он стопудова лучше, чем стандартный complex! Хотя смотрю реализацию стандартного - а там какие-то хитрые конструкции, макросы, __builtin-функции... нет, мой класс все равно лучший, но рекламировать его всему миру я, пожалуй, пока не буду
0
|
||
|
фрилансер
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,418
|
||
| 13.05.2023, 07:34 | ||
Ну, слегка непривычно было, но сейчас пофиг ![]() ТС хочет написать свой велосипед, и напишет, наверное. Только поймёт, что тот же std::vector написан и протестирован намного круче. И рано или поздно всё равно перейдёт на всё стандартное. В частности, ТС не использует перемещение, placement new, забил на правило пяти. Это из сразу очевидных ошибок. Возможно, ещё куча граблей
0
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 13.05.2023, 08:23 [ТС] | |||
по мне голимая реализация. Поймите я не утверждаю, что это полный отстой, многие же пользуются и тд. просто я уже глядел реализацию как там что сделано и по мне это лучше не использовать в своих разработках, вот и всё, если вас это устраивает я не против, пользуйтесь.Мне нужны не готовые решения, а некоторый удобный функционал работы с дисковой системой, вот как работа с файлами https://en.cppreference.com/w/cpp/filesystem На основе чего я уже смогу сделать то как мне надо. Проблема большинства в том что они хотят чтобы им всё выложили на блюдечке, чтобы всё как им хочется, но это их проблема, окружающим наплевать на то что кто чего хочет, у них свои хотелки и каждый старается перетаскивать одеяло в свою сторону. Например некоторые постоянно стараются меня заставить делать так как им было бы удобно и тд. вот только это напрасно я делаю и буду делать только так как мне удобно. У меня с годами выработались привычки, хорошие ли плохие, но я так привык. Например почему я сделал типизацию заглавными буквами, методы с большой буквы, везде у меня одни и те же имена переменных или отличающиеся одной буквой и тд. Это выработанные годами привычки. Когда то я писал базу данных на Pascal и определил типизацию таким образом, затем применил это в PHP классе работы с базой данных, ещё где-то и тд. теперь вот и в C++ сделал так же. Мне это удобно на любом языке у меня один свой стиль программирования не надо перестраиваться, вспоминать что и как надо делать в том или ином языке. Свой удобный синтаксис выработался, я быстро разбираюсь в своём коде нахожу недочёты и дорабатываю если перехожу с одного языка на другой и тд. И не надо меня заставлять делать как вам удобно. Ещё в детстве я уяснил одну простую истину, если чего-то хочешь, то сделай то что позволит тебе это получить. Я жил без отца да и мама со мной ничем не занималась, ничему не учила, кроме как на огородах, усадах пахать, дома убираться. До всего остального приходилось доходить своим умом... Я ещё в детстве сам мог починить газовую колонку, телевизор (ламповый, там просто было сразу видно где что сгорело, в современных я уже не разбираюсь, специального образования нет), замки в двери вставлял, мопед перебирал, потом и машины тоже(после армии сразу купил первую машину) и тд. Хотите чтобы типизация была так как вам удобно, методы были с маленькой буквы и тд. делайте форк или пишите свою библиотеку и тд. Делайте так как вам нужно, никто кроме вас этого делать не будет. Не хотите делать, тогда подстраивайтесь под то что есть и смиритесь с тем что не получите то как хотите. Вот и всё. ЗЫ. Я свою библиотеку пишу исключительно для своих целей, которые не раз озвучивал.
0
|
|||
| 13.05.2023, 08:48 | ||
|
Вы в курсе, что авторы библиотеки имеют прямое отношение к развитию языка С++? Если вам не нравится как там все сделано, то вам стоит задуматься нужно ли брать на вооружение с++. Но это так к слову - хотите делать свое пилите. Я это не для спора, а для того, чтоб проинформировать вас о том, что уровень разработчиков там высокий и опыта у них навалом
0
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 13.05.2023, 12:57 [ТС] | ||
|
Насчёт опыта. Одну и туже функцию можно реализовать тысячами способами и все будут работать и выдавать нужный результат. Вот только одна функция может быть написана чисто без использования других, другая с использованием, третья и так и так, четвёртая с вставкой ассемблера, и тд. Я хоть и чайник в C++ но у меня достаточно компетенции чтобы понять, что та или иная функция будет быстрой, легко используемой, не потянет ничего лишнего и тд. Глядя на то как там реализовано это трешь, не смотря на опытность тех кто это писал.. Вот поэтому современные компы нет, нет да подвисают несмотря на гигабайты оперативной памяти, кучи ядер процессора и тд. Добавлено через 3 часа 44 минуты Кстати вот тут на форуме видел тему насчёт кодировки. Перерыл можно сказать весь инет когда-то, но так и не нашёл рабочего примера конвертации кодировки, с iconv не компилируются примеры, куча ошибок, даже разбираться в этом шлаке, в чём дело нет желания. Может кто дать пример конвертации кодировки из UTF-8 в ANSI 1251? А в идеале бы универсальную из разных кодировок с нужную.
0
|
||
| 13.05.2023, 13:23 | |
|
Есть iconv_open . а если хотите результата то показывайте минимально необходимый для воспроизведения код и ошибки которые получаете. Какой смысл подсказывать вам решение, все равно же вы будете вы его в свой код вставлять. Будут ошибки - будете следующий пример искать?
0
|
|
|
86 / 60 / 12
Регистрация: 06.06.2013
Сообщений: 216
|
|||||||
| 13.05.2023, 19:04 | |||||||
0
|
|||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||||||||||
| 18.05.2023, 21:23 [ТС] | |||||||||||
|
Обновил гит. Непонятные ошибки..
0
|
|||||||||||
|
фрилансер
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,418
|
|||||
| 18.05.2023, 21:50 | |||||
|
первые же строки:
далее
using namespace std;правильно так catch(const std::exception &exc){Error::exce(typeid(exc).name(),exc .what());} Добавлено через 1 минуту https://onlinegdb.com/ZrhRllarOc Добавлено через 1 минуту и, поскольку везде, где этот макрос будет, также всё равно потребуется и заголовок, то раскомментируй в начале файла
1
|
|||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||||||||
| 18.05.2023, 21:54 [ТС] | |||||||||
|
остались эти
Добавлено через 1 минуту
0
|
|||||||||
|
фрилансер
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,418
|
|||||||||||||
| 18.05.2023, 22:07 | |||||||||||||
|
pgb, вообще, от макросов желательно избавляться, поэтому я бы сделал хотя бы так
_error.hpp
Добавлено через 5 минут
0
|
|||||||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 18.05.2023, 22:07 [ТС] | |||
|
0
|
|||
|
фрилансер
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,418
|
|
| 18.05.2023, 22:10 | |
|
pgb, а если те поля сделать public, такие ошибки всё равно появляются ?
0
|
|
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||||||
| 18.05.2023, 22:32 [ТС] | |||||||
|
Сейчас переместил в public, теперь куча мала стало
0
|
|||||||
|
Модератор
|
|
| 18.05.2023, 23:21 | |
|
А если собрать с
-Werror -Wall -Wextra -Wpedantic или /W4 /WX?Хотя судя по теме мне даже страшно представить что будет)) Добавлено через 37 секунд Библиотеки надо писать чтобы собиралось с этими флагами
0
|
|
|
35 / 24 / 11
Регистрация: 18.02.2021
Сообщений: 100
|
|
| 18.05.2023, 23:55 | |
|
Зачем этим заниматься? Если есть готовые решения и библиотеки, которые достигли достаточной известности чтобы называться стандартными. А стандарт вы сами понимаете он и в африке стандарт - это портируемость кода, документация к нему, унифицируемость, возможность кроссплатформенных решений и т.д. и т.п.
Добавлено через 3 минуты Ну то есть например вот работа с БД. Можно например отказаться от SQL и придумывать свой язык для обращения с БД, но где это будет применимо вне рамок разработок. Веб-сервер, уже есть curl для C/C++ много всякого позволяющего работать по сети. Графические примочки, это у каждой ОС своя, или можно брать кроссплатформенные решения типа Qt. Есть например OpenGL и прочие библиотеки, графические движки даже есть в них надо только въехать и можно делать на всем готовом.
0
|
|
|
фрилансер
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,418
|
|
| 19.05.2023, 07:29 | |
|
Pro100Slavik, есть у человека свободное время и желание понаступать на грабли. Его право
0
|
|
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 19.05.2023, 11:11 [ТС] | ||
|
Вот честно, я бы с радостью использовал готовое, если бы оно не было таким шлаком.. Если даже на уровне написания чего-то с нуля возникают масса проблем даже на нативном языке, то что будет если использовать так называемые готовые стандартные и др. решения вы даже представить не можете, так как не разрабатывали на этом что-то большое. Над обычными приложениями зачастую работают целыми компаниями десятки, сотни, а то и тысячи человек, там да пень через колоду решают кое-как проблемы и собирают что-то. Но если вы один начнёте делать, то ни в жизнь никогда вам на этих готовых инструментах не довести до релиза свой продукт, 100% возникнет потребность некоторых доработок или некоторые баги в этих готовых решениях и вы уже не сдвинитесь с места.. Вот к примеру сейчас у меня возникли проблемы с предупреждениями, но это решаемо, на нативном языке ещё можно найти причину и устранить. А если это будет из-за сторонней библиотеки, то решение сводится к 50% а то и меньше. Короче если нечего ответить по теме, помочь мне с решением, то лучше не писать тут подобных мнений, грабли есть везде, но там где начинаешь с нуля, в чистом поле, там один раз наступишь, а другой раз обойдёшь, а если используешь что-то стороннее, то это считай, что идёшь по заминированному полю, и не факт, что сможешь это поле пройти..
0
|
||
| 19.05.2023, 11:19 | ||
|
Интересно почему только у вас возникают страшные проблемы с готовыми, хорошо протестированными решениями.? При этом вы даже не успеваете попробовать на них сделать что то более менее серьезное. А в оправдание только сказки про "я посмотрел и сразу понял" да еще и с учетом уровня вопросов в этой теме.
0
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 19.05.2023, 11:51 [ТС] | ||
|
0
|
||
| 19.05.2023, 11:51 | |
|
Как создать свою библиотеку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|