|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Пишу свою библиотеку C++04.04.2023, 20:22. Показов 9180. Ответов 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
|
||
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
||
| 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
|
|||||||||||
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|||||
| 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
|
|||||||||
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|||||||||||||
| 18.05.2023, 22:07 | |||||||||||||
|
pgb, вообще, от макросов желательно избавляться, поэтому я бы сделал хотя бы так
_error.hpp
Добавлено через 5 минут
0
|
|||||||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 18.05.2023, 22:07 [ТС] | |||
|
0
|
|||
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|
| 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
|
|
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|
| 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 | |
|
Помогаю со студенческими работами здесь
100
Как создать свою библиотеку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|