Любой современный компилятор имеет "format string checking", например, в gcc/clang -Wformat, так что более-менее тоже type-safety. Кстати, когда вы пишете свой логгер, который принимает форматирование в формате printf, то следует обложить атрибутом __attribute__((format(printf, ...))), тогда компилятор и тут проверит аргументы и типы.
Очень часто приходим к тому, что простой остановки программы недостаточно, а нужно куда-то сохранить информацию об ассерте
Assert вызовет abort(), тот посылает SIGABRT, и по-умолчанию создаётся core dump. Обычно вы запускаете программу/демон из какой-то обёртки на shell/python, и если программа завершила аварийно, то можно посмотреть создалась ли кора, и зайти gdb bt, и прислать, например, на email.
Чтобы самому не изобретать TUI-велосипеды, и не связываться с ncurses, а писать на современном C++, предлагаю взять готовую библиотеку https://github.com/ArthurSonzogni/FTXUI
C++23: старый добрый друг с новыми трюками Модули наконец-то работают как надо
Подключить библиотеку std можно только в MSVC. Модули только для своего проекта - так себе.
Coroutines в стандартной библиотеке
std::generator только если. Корутины есть в языке в виде co_await/co_yield/co_return, а дальше надо брать какую-то стороннюю библиотеку, типа cppcoro или Boost::ASIO.
До сих пор нет нормальной системы пакетов (хотя vcpkg и Conan спасают)
cmake с FetchContent или сразу CPM.cmake.
Нужны очень опытные разработчики
На Rust тоже нужны, и их чаще всего не завезли, и кто-то будет переучиваться с плюсов или джавы.
Фактор автобуса, только лишь на владении Растом, не канает. Если несколько человек знакомы с проектом, если есть какая-то документация, если есть какие-то автотесты, то автобуса тут нет.
Особенно нравится ваш код ‘ "ERROR", "ERROR" + 5’. Возлагается надежда на компилятор, что он текстовые константы положит в сегмент статических данных только для чтения ровно один раз, хотя в стандарте про такую оптимизацию не просят.
Публикация должна была выйти первого апреля.
Надо было сразу просить написать на ассемблере, и без функций, без именования переменных, всё сплошником.
Возможно из за выбора ИИ моделей из не самых топовых. Как бы и на думающих дорогих моделях ИИ знатно косячит, но тут эталон бездарности.
C++, Rust, ...?
Любой современный компилятор имеет "format string checking", например, в gcc/clang
-Wformat, так что более-менее тоже type-safety.Кстати, когда вы пишете свой логгер, который принимает форматирование в формате printf, то следует обложить атрибутом
__attribute__((format(printf, ...))), тогда компилятор и тут проверит аргументы и типы.Если передавать как ссылку, то и проверять на Nullptr не надо ;-)
Assert вызовет abort(), тот посылает SIGABRT, и по-умолчанию создаётся core dump.
Обычно вы запускаете программу/демон из какой-то обёртки на shell/python, и если программа завершила аварийно, то можно посмотреть создалась ли кора, и зайти gdb bt, и прислать, например, на email.
Классика же, сравнивать с snprtinf(), забыли?
Каждый год выходит по несколько очередных "убийц" C++. Что-то пока ни как не взлетит. Где сейчас язык D?
UPD 2019: Для 64-битный билдов они перешли на Lazarus, но для 32-бит всё ещё на старом Delphi, потому что делает компактные .exe.
Чтобы самому не изобретать TUI-велосипеды, и не связываться с ncurses, а писать на современном C++, предлагаю взять готовую библиотеку https://github.com/ArthurSonzogni/FTXUI
По факту не готово.
C++ compiler support Standard Library Modules (FTM)* P2465R3
GCC libstdc++ 15*
Clang libc++ 17 (partial)*
MSVC STL 19.35* (partial)*
Apple Clang* 19.36*
Подключить библиотеку std можно только в MSVC. Модули только для своего проекта - так себе.
std::generator только если. Корутины есть в языке в виде co_await/co_yield/co_return, а дальше надо брать какую-то стороннюю библиотеку, типа cppcoro или Boost::ASIO.
cmake с FetchContent или сразу CPM.cmake.
На Rust тоже нужны, и их чаще всего не завезли, и кто-то будет переучиваться с плюсов или джавы.
Фактор автобуса, только лишь на владении Растом, не канает. Если несколько человек знакомы с проектом, если есть какая-то документация, если есть какие-то автотесты, то автобуса тут нет.
Есть ChatGPT, Sonnet/Opus и кросс-платформенные тулы/либы. Why бы и not? И зачем писать под Windows only?
Это расширение для VSCode. А если рабочая IDE это vim/neovim?
Причём тут C++?
Это если предварительно сделали нормализацию текста, иначе текст с акцентами может быть по разному представлен и вы не найдете.
Особенно нравится ваш код ‘ "ERROR", "ERROR" + 5’. Возлагается надежда на компилятор, что он текстовые константы положит в сегмент статических данных только для чтения ровно один раз, хотя в стандарте про такую оптимизацию не просят.
Причём здесь C++, C#?