@Xiran

Как сделать constexpr strtol?

Пишу тут небольшую header-only шаблонную библиотеку для работы с цифрами в разных представлениях и системах счисления. Хотелось бы добавить синтаксис написания числа о указанной системой счисления. Вот такой:
"123"_4
Т.е.

Но для того чтобы произвести преобразование из строки в число, нужно использовать старый-добрый strtol
из Си, или std::from_chars из С++17. Я думаю, что делать это в рантайме бессмысленно.
Согласно cppreference, последний в C++23 стал constexpr, но я бы хотел сохранить поддержку хотя бы для C++17.
Попробовал реализовать сам, покопался в libstdc++ и в libc++, но там все очень сильно связано, половина функций, которые вызываются там - internal-use-only, и так ничего и не смог сделать(
А нагугленные мной реализации работают только с десятичной системой счисления, они мне не нужны.
А как библиотечные реализации работают?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
@dima20155
you don't choose c++. It chooses you
Вроде, нет никакой сложности сделать compile-time strtol
https://godbolt.org/z/z1o7f63K1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы