ストリームからの読み取りを試みることはできますが、ストリーム自体を変更しないでください(成功したかどうかをboolに戻します)。ストリームからの非破壊読み取り
template <typename T> bool SilentRead (stringstream& s, T& value) {
stringstream tmp = s;
tmp >> value;
return tmp;
}
stringstreamにはパブリックコピーコンストラクタがないため、これは機能しません。 これを行うには?
stringstreamをistreamに置き換えても解決できますか?
もちろん、すべてのストリームでは機能しません。 – MSalters
もちろん:)。私はstd :: stringstreamを厳密に参照していました(通常のファイルでも同様に動作します)。 –