为什么 to_string 没有模板化?
Why Isn't to_string Templatized?
我认为 to_string
只是模板化并在幕后使用 stringstream
。
不是这样吗?
我希望能够做到这一点:
class foo{};
ostream& operator<<(ostream& os, const foo& /*bar*/){
os << "foo";
return os;
}
int main() {
foo bar;
string tsTest = to_string(bar);
return 0;
}
但显然这不起作用,因为 to_string
没有模板化。
不,to_string 不适用于任何类型。只有原始标准类型的重载。不幸的是,它不能取代 boost::lexical_cast
。
我认为 to_string
只是模板化并在幕后使用 stringstream
。
不是这样吗?
我希望能够做到这一点:
class foo{};
ostream& operator<<(ostream& os, const foo& /*bar*/){
os << "foo";
return os;
}
int main() {
foo bar;
string tsTest = to_string(bar);
return 0;
}
但显然这不起作用,因为 to_string
没有模板化。
不,to_string 不适用于任何类型。只有原始标准类型的重载。不幸的是,它不能取代 boost::lexical_cast
。