爲什麼沒有爲什麼沒有std :: from_string()?
template <typename T>
T std::from_string(const std::string& s);
在C++標準
? (看看如何有std::to_string()
函數,我的意思是)
PS - 如果你有一個想法,因爲這不被採用/考慮,只是回答/評論,並說出它是什麼,而不是downvoting。我實際上並沒有提出將此列入標準的提案。
爲什麼沒有爲什麼沒有std :: from_string()?
template <typename T>
T std::from_string(const std::string& s);
在C++標準
? (看看如何有std::to_string()
函數,我的意思是)
PS - 如果你有一個想法,因爲這不被採用/考慮,只是回答/評論,並說出它是什麼,而不是downvoting。我實際上並沒有提出將此列入標準的提案。
std::to_string()
有一個更嚴格的要求:它由一組明確定義的非模板化重載組成,每個重載都有一個可以流水化的類型。所以很容易定義究竟函數應該做什麼。
您的建議std::from_string()
更廣泛。這將有棘手的角落,如錯誤處理考慮因素,精度設置等。已經可用的流功能,做這種事情可能就足夠了。
爲什麼這會比操作符>>和istreams更棘手? – einpoklum
istream的東西有各種修飾符用於調整精度和基數 - 這將很難封裝在一個單一的功能。 – Bathsheba
你的第一段就是我看到這個問題時的想法,除了基於觀點的/廣泛的... ...所以+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中進行調整,所以在評估他們是否考慮過這個問題時,有一個非常好的搜索術語,正如在問題的評論中所指出的那樣。 –
['std :: stoi'](http://en.cppreference.com/w/cpp/string/basic_string/stol)和家人。 – NathanOliver
@NathanOliver:這不是一回事。 – einpoklum
「[爲什麼'std :: sto' ...系列不是模板?](http://stackoverflow.com/questions/37920924/why-is-the-stdsto-series-not-a-template)」可能感興趣。 – Quentin