|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Пишу свою библиотеку C++04.04.2023, 20:22. Показов 17095. Ответов 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 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
|
| 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 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
||||||||
| 19.05.2023, 14:53 | ||||||||
operator=(const char*)
0
|
||||||||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||||||
| 19.05.2023, 14:58 [ТС] | |||||||
0
|
|||||||
|
фрилансер
6495 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
|
| 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 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
|||
| 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 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
|||||||||||
| 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 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
||||
| 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 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
||
| 19.05.2023, 22:43 | ||
|
А вообще, в данном конкретном случае проброс и не нужен особо-то. Если смущает, можешь убрать. Я его на автомате поставил
например, если снаружи в функцию передали ссылку, то без проброса при использовании это тоже будет ссылка. А вот если передали временное значение (rvalue), то без проброса это будет просто ссылка. Кратно я это не сумею объяснить, загляни вот сюда, например
0
|
||
|
фрилансер
6495 / 5723 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
|
|||||||||||
| 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 | |
|
Как создать свою библиотеку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне.
Это уже новая модель, модель сукцессии грибной.
потоки фосфора, азота. Углерода.
5 видов организмов.
Я даже. . .
|
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ
Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
|