Можно ли попытаться прочитать из потока, но не изменить сам поток (и вернуть bool, если это был успех)?
template <typename T> bool SilentRead (stringstream& s, T& value) {
stringstream tmp = s;
tmp >> value;
return tmp;
}
Это не работает, потому что stringstream не имеет открытого конструктора копирования.
Как это сделать тогда?
Можно ли решить эту проблему, если мы заменим stringstream на istream?