Open Neargye opened 3 years ago
yndx-antoshkka, 29 ноября 2017, 18:35 Как разработчик Boost.LexicalCast я буду выступать категорически против принятия lexical_cast в стандарт в том виде, что он в Boost.
Правильный lexical_cast, это lexical_cast использующий std::to_chars/std::from_chars и не умеющий конвертировать пользовательские типы данных. Желательно при этом ему быть constexpr :)
Игорь, 29 ноября 2017, 19:25 yndx-antoshkka, То есть, я так понимаю сейчас стоит задача переписать существующий lexical_cast где внутри будут эти std::from_chars/std::to_chars, которые не тянут как мне помниться кучу лишнего, как например локаль. И только потом рассматривать возможность включения в стандарт? А почему не конвертить пользовательские типы данных? Почему бы ему не быть универсальным? В чем проблема?
yndx-antoshkka, 30 ноября 2017, 13:23 пользовательские типы данных обычно конвертируются через basic_ostream, а он использует локаль, динамические аллокации. Получится не консистентно - обычные типы всегда будут конвертироваться в C локали, пользовательские типы - в текущей. Можно конечно для basic_ostream всегда явно задавать C локаль, но это дополнительно замедлит функцию
Сергей Трифонов, 29 ноября 2017, 22:17 Мне нравится больше библиотека fmtlib. Удобнее для форматирования текста.
Антон Бикинеев, 30 ноября 2017, 16:30 Сергей Трифонов, есть, кстати, предложение стандартизовать эту либу: #13
Перенос предложения: голоса +4, -4 Автор идеи: Игорь
Было бы неплохо, если такая крайне часто используемая библиотека как boost::lexical_cast мигрировала бы в стандартную библиотеку.
Часто используемая и полезная библиотека обязана лежать в пространстве std чтобы лишний раз не грузить по этому поводу бусты.