Перенести в стандартную библиотеку boost::lexical_cast

rumyancev95
rumyancev95

Было бы неплохо, если такая крайне часто используемая библиотека как boost::lexical_cast мигрировала бы в стандартную библиотеку.

 

Часто используемая и полезная библиотека обязана лежать в пространстве std чтобы лишний раз не грузить по этому поводу бусты.

0
рейтинг
5 комментариев
yndx-antoshkka
Как разработчик Boost.LexicalCast я буду выступать категорически против принятия lexical_cast в стандарт в том виде, что он в Boost.

Правильный lexical_cast, это lexical_cast использующий std::to_chars/std::from_chars и не умеющий конвертировать пользовательские типы данных. Желательно при этом ему быть constexpr :)
yndx-antoshkka
rumyancev95
yndx-antoshkka, То есть, я так понимаю сейчас стоит задача переписать существующий lexical_cast где внутри будут эти std::from_chars/std::to_chars, которые не тянут как мне помниться кучу лишнего, как например локаль. И только потом рассматривать возможность включения в стандарт? А почему не конвертить пользовательские типы данных? Почему бы ему не быть универсальным? В чем проблема?
rumyancev95
yndx-antoshkka
пользовательские типы данных обычно конвертируются через basic_ostream, а он использует локаль, динамические аллокации. Получится не консистентно - обычные типы всегда будут конвертироваться в C локали, пользовательские типы - в текущей. Можно конечно для basic_ostream всегда явно задавать C локаль, но это дополнительно замедлит функцию
yndx-antoshkka
Сергей Трифонов
Мне нравится больше библиотека fmtlib. Удобнее для форматирования текста.
Сергей Трифонов
Антон Бикинеев
Сергей Трифонов, есть, кстати, предложение стандартизовать эту либу: stdcpp.ru/proposals/a270e3f8-3b35-4485-8e08-2ae56afdb1c3
Антон Бикинеев
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).