为什么 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