Информация об изменениях

Сообщение Библиотека форматирования marty::format от 12.04.2025 21:05

Изменено 12.04.2025 21:07 Marty

Библиотека форматирования marty::format
Здравствуйте!

В форум "Исходники" не пощу, потому что интересно получить пинков именно по моему "C++"

Надо же как-то расти

Ну и по доке тоже пинки приветствуются

Библиотека предназначена для встройки в кастомную динамику, поэтому я не задрачивался на всякие новые фишки плюсов — constexpr/constinit/consteval

Одна из базовых фич — совмещение форматной строки С++20 std::format и форматных строк питона — можно использовать без модификации и то и другое.

Но либу можно и из плюсиков нативно использовать, передавая аргументы через initializer_list ({...})

Возможности библиотеки

  1. Добавление возможностей C++ std::format из C++20 в C++17 (бэкпорт новых фич в старый стандарт).
  2. Совместимость форматной строки с форматной строкой языков Python и C++. Некоторые возможности этих языков игнорируются, но не вызывают ошибки при разборе форматной строки. В библиотеке совмещены возможности
  3. форматирования из языка Python и возможности форматирования C++20 std::format.
  4. Поддержка именованных аргументов для C++ при использовании соответствующих контейнеров для аргументов.
  5. Поддержка передачи аргументов через std::initializer_list для непосредственного использования из C++.
  6. Упор на использование библиотеки в своих скриптовых языках/DSL языках.
  7. Поддержка Unicode в кодировке UTF-8.
  8. Поддержка чисел с плавающей точкой произвольной размерности marty::Decimal.
  9. Поддержка пользовательских типов строк вместо std::string и поддержка микроконтроллеров (STM32, как пример). Пока не реализовано, но весьма ready, требует отключения части кода условными макросами, также требуется модифицировать некоторые части, пока завязанные на std::string.
  10. Возможность создания собственной системы/библиотеки форматирования на базе данной библиотеки с поддержкой вывода собственных произвольных типов данных.

Собственно, форматирование по всем правилам форматной строки пока не реализовано, оно будет делаться по мере необходимости, и после того, как я решу, как быть с некоторыми проблемами — например, как быть, если спецификатор типа в форматной строке никак не соответствует фактическому параметру.

Пока всё обрабатывается без ошибок через вставку текста при помощи обёрток над std::to_string.

В общем, пинайте на здоровие — https://github.com/al-martyn1/marty_format
Библиотека форматирования marty::format
Здравствуйте!

В форум "Исходники" не пощу, потому что интересно получить пинков именно по моему "C++"

Надо же как-то расти

Ну и по доке тоже пинки приветствуются

Библиотека предназначена для встройки в кастомную динамику, поэтому я не задрачивался на всякие новые фишки плюсов — constexpr/constinit/consteval

Одна из базовых фич — совмещение форматной строки С++20 std::format и форматных строк питона — можно использовать без модификации и то и другое.

Но либу можно и из плюсиков нативно использовать, передавая аргументы через std::initializer_list{...}

Возможности библиотеки

  1. Добавление возможностей C++ std::format из C++20 в C++17 (бэкпорт новых фич в старый стандарт).
  2. Совместимость форматной строки с форматной строкой языков Python и C++. Некоторые возможности этих языков игнорируются, но не вызывают ошибки при разборе форматной строки. В библиотеке совмещены возможности
  3. форматирования из языка Python и возможности форматирования C++20 std::format.
  4. Поддержка именованных аргументов для C++ при использовании соответствующих контейнеров для аргументов.
  5. Поддержка передачи аргументов через std::initializer_list для непосредственного использования из C++.
  6. Упор на использование библиотеки в своих скриптовых языках/DSL языках.
  7. Поддержка Unicode в кодировке UTF-8.
  8. Поддержка чисел с плавающей точкой произвольной размерности marty::Decimal.
  9. Поддержка пользовательских типов строк вместо std::string и поддержка микроконтроллеров (STM32, как пример). Пока не реализовано, но весьма ready, требует отключения части кода условными макросами, также требуется модифицировать некоторые части, пока завязанные на std::string.
  10. Возможность создания собственной системы/библиотеки форматирования на базе данной библиотеки с поддержкой вывода собственных произвольных типов данных.

Собственно, форматирование по всем правилам форматной строки пока не реализовано, оно будет делаться по мере необходимости, и после того, как я решу, как быть с некоторыми проблемами — например, как быть, если спецификатор типа в форматной строке никак не соответствует фактическому параметру.

Пока всё обрабатывается без ошибок через вставку текста при помощи обёрток над std::to_string.

В общем, пинайте на здоровие — https://github.com/al-martyn1/marty_format