LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Неа. std::from_chars до сих пор для float работает только на MSVC. Почему? Потому что никто (в GCC и clang) не хочет писать реализацию с нуля, а использование strtof требует аллокации (чтобы приписать \0) запрещённой стандартом (и здравым смыслом). То есть они 5 лет не могут написать конвертер строки во float. Да, там есть нюансы, чтобы не было потерь точности, но алгоритму много лет и можно адаптировать кусок из strtof, который уже есть у обоих компиляторов и, очевидно, должен иметь совместимую лицензию.

Как следствие, std::string_view нельзя конвертировать во float, подавай std::string. А что если ты вырезаешь подстроки из большой строки?

Исправление KivApple, :

Неа. std::from_chars до сих пор для float работает только на MSVC. Почему? Потому что никто (в GCC и clang) не хочет писать реализацию с нуля, а использование strtof требует аллокации (чтобы приписать \0) запрещённой стандартом. То есть они 5 лет не могут написать конвертер строки во float. Да, там есть нюансы, чтобы не было потерь точности, но алгоритму много лет и можно адаптировать кусок из strtof, который уже есть у обоих компиляторов и, очевидно, должен иметь совместимую лицензию.

Как следствие, std::string_view нельзя конвертировать во float, подавай std::string. А что если ты вырезаешь подстроки из большой строки?

Исходная версия KivApple, :

Неа. std::from_chars до сих пор для float работает только на MSVC. Почему? Потому что никто (в GCC и clang) не хочет писать реализацию с нуля, а использование strtof требует аллокации запрещённой стандартом. То есть они 5 лет не могут написать конвертер строки во float. Да, там есть нюансы, чтобы не было потерь точности, но алгоритму много лет и можно адаптировать кусок из strtof, который уже есть у обоих компиляторов и, очевидно, должен иметь совместимую лицензию.

Как следствие, std::string_view нельзя конвертировать во float, подавай std::string. А что если ты вырезаешь подстроки из большой строки?