2016-08-26 3 views
2

Почему там нетПочему нет std :: from_string()?

template <typename T> 
T std::from_string(const std::string& s); 

в стандарте C++? (Видя, как есть функция std::to_string(), я имею в виду)

PS - Если у вас есть идея по причине, которая не была принята/рассмотрена, просто ответьте/прокомментируйте и скажите, что это такое, а не downvoting. На самом деле я не предлагаю, чтобы это было включено в стандарт.

+0

['std :: stoi'] (http://en.cppreference.com/w/cpp/string/basic_string/stol) и семья. – NathanOliver

+0

@NathanOliver: Это не одно и то же. – einpoklum

+3

«[Почему серия' std :: sto' ... не шаблон?] (Http://stackoverflow.com/questions/37920924/why-is-the-stdsto-series-not-a-template) "может представляют интерес. – Quentin

ответ

0

std::to_string() имеет гораздо более жесткий мандат: он состоит из четко определенного набора нетемплицированных перегрузок, и каждая перегрузка имеет тип, который тривиально сужается. Так что легко определить точно, что должны делать функции.

Ваше предложение std::from_string() гораздо шире. У этого были бы хитрые углы, такие как соображения обработки ошибок, прецизионные настройки и т. Д. Возможно, уже доступны уже существующие функции потока, которые делают такие вещи.

+1

Почему это было бы более сложным, чем то, что у вас есть с оператором >> и istreams? – einpoklum

+1

Исходный материал имеет всевозможные модификаторы для настройки точности и радиуса - это будет сложно инкапсулировать в одну функцию. – Bathsheba

+0

Ваш 1-й абзац - это именно то, что я думал, когда увидел этот вопрос, кроме слишком основанного на мнениях/широкого ... так +1. Моя вторая мысль заключалась в том, что @einpoklum просто хочет ['boost :: lexical_cast'] (http://www.boost.org/doc/libs/1_61_0/doc/html/boost_lexical_cast/examples.html#boost_lexical_cast.examples.strings_to_numbers_conversion) ,И поскольку Комитет часто приспосабливает вещи от Boost, есть очень хороший поисковый термин, который следует использовать при оценке того, считают ли они это, как это утверждалось в комментариях по этому вопросу. –