Может ли поток строк генерировать исключение при чтении примитива?

Глядя на какой-то старый код, мы видим много вещей, подобных следующему:

// 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 читает примитив, может ли он когда-либо генерировать исключение? А как насчет чтения строки?

10
задан LeviX 7 July 2012 в 21:28
поделиться