Глядя на какой-то старый код, мы видим много вещей, подобных следующему:
// This is dumb
string do_something(int in)
{
stringstream out;
try
{
out << std::fixed << in;
}
catch(std::exception &e)
{
out << e.what();
}
return out.str();
}
// Can't we just do this? Can this ever fail?
string do_something_better(int in)
{
stringstream out;
out << std::fixed << in;
return out.str();
}
Когда stringstream читает примитив, может ли он когда-либо генерировать исключение? А как насчет чтения строки?