|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Пишу свою библиотеку C++04.04.2023, 20:22. Показов 14085. Ответов 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
|
||
|
фрилансер
6483 / 5709 / 1132
Регистрация: 11.10.2019
Сообщений: 15,222
|
||
| 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
|
|||||||||||
|
фрилансер
6483 / 5709 / 1132
Регистрация: 11.10.2019
Сообщений: 15,222
|
|||||
| 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
|
|||||||||
|
фрилансер
6483 / 5709 / 1132
Регистрация: 11.10.2019
Сообщений: 15,222
|
|||||||||||||
| 18.05.2023, 22:07 | |||||||||||||
|
pgb, вообще, от макросов желательно избавляться, поэтому я бы сделал хотя бы так
_error.hpp
Добавлено через 5 минут
0
|
|||||||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 18.05.2023, 22:07 [ТС] | |||
|
0
|
|||
|
фрилансер
6483 / 5709 / 1132
Регистрация: 11.10.2019
Сообщений: 15,222
|
|
| 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
|
|
|
фрилансер
6483 / 5709 / 1132
Регистрация: 11.10.2019
Сообщений: 15,222
|
|
| 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
Как создать свою библиотеку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Гайд, как ворваться в вайб-кодинг в мае 2026
Noname2331 17.05.2026
Простите за получившееся полотно текста, я даже не знаю, как его разбить на главы. Тут, что называется, ни добавить ни убавить, одна сцена одним дублем.
На моих глазах недавно случилось чудо. Как. . .
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|