我刚刚才知道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