История изменений
Исправление 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. А что если ты вырезаешь подстроки из большой строки?