我剛剛纔知道C++在<string>
中定義了std::to_string()
。現在我想知道爲什麼to_string()
只適用於數字類型。有沒有什麼特別的原因,爲什麼沒有更一般的爲什麼數字類型只有`to_string()`?
template <typename T>
std::string to_string(const T& t);
?
可以實現這樣的:
template <typename T>
std::string to_string(const T& t) {
std::ostringstream s;
s << t;
return s.str();
}
我懷疑,這樣的一般to_string
不存在,因爲它很容易寫你自己的,但同樣的道理也適用於to_string()
採取int
,double
,等等。
只是我的兩分錢......但是這些功能太有限了,不值得在std裏面......像Boost.Format或lexical_cast這樣的東西會很多,我的意思是更有用。這些to_string函數非常基本,只在最基本的場景中有用,這意味着它們在現實生活中是無用的。 – rubenvb
不要被一票拋棄。可能只是一個糟糕的一天。 –
其實,有關於這個問題的建議http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0117r0.html,但不要以爲有人會接受 – DAle