Здравствуйте!
В форум "Исходники" не пощу, потому что интересно получить пинков именно по моему "C++"
Надо же как-то расти
Да ну и просто в профильном очень мало постов, по сравнению с политиками
Ну и по доке тоже пинки приветствуются
Библиотека предназначена для встройки в кастомную динамику, поэтому я не задрачивался на всякие новые фишки плюсов — constexpr/constinit/consteval
Одна из базовых фич — совмещение форматной строки С++20 std::format и форматных строк питона — можно использовать без модификации и то и другое.
Но либу можно и из плюсиков нативно использовать, передавая аргументы через
std::initializer_list{...}
Возможности библиотеки
Добавление возможностей C++ std::format из C++20 в C++17 (бэкпорт новых фич в старый стандарт).
Совместимость форматной строки с форматной строкой языков Python и C++. Некоторые возможности этих языков игнорируются, но не вызывают ошибки при разборе форматной строки. В библиотеке совмещены возможности форматирования из языка `Python` и возможности форматирования `C++20` `std::format`.
Поддержка именованных аргументов для C++ при использовании соответствующих контейнеров для аргументов.
Поддержка передачи аргументов через std::initializer_list для непосредственного использования из C++.
Упор на использование библиотеки в своих скриптовых языках/DSL языках.
Поддержка Unicode в кодировке UTF-8.
Поддержка чисел с плавающей точкой произвольной размерности marty::Decimal.
Поддержка пользовательских типов строк вместо std::string и поддержка микроконтроллеров (STM32, как пример). Пока не реализовано, но весьма ready, требует отключения части кода условными макросами, также требуется модифицировать некоторые части, пока завязанные на std::string.
Возможность создания собственной системы/библиотеки форматирования на базе данной библиотеки с поддержкой вывода собственных произвольных типов данных.
Собственно, форматирование по всем правилам форматной строки пока не реализовано, оно будет делаться по мере необходимости, и после того, как я решу, как быть с некоторыми проблемами — например, как быть, если спецификатор типа в форматной строке никак не соответствует фактическому параметру.
Пока всё обрабатывается без ошибок через вставку текста при помощи обёрток над std::to_string.
В общем, пинайте на здоровие —
https://github.com/al-martyn1/marty_format