次のような割り当て
std::stringstream strstr;
strstr = std::stringstream(someString)
gccでコンパイルするとエラーが発生します:
error: use of deleted function ‘std::basic_stringstream<char>& std::basic_stringstream<char>::operator=(const std::basic_stringstream<char>&)’
std::stringstream
これで、ストリームを明らかにコピーできず、のコピー コンストラクターが削除済みとしてマークされていることがわかりました。ただし、私の理解では、代入演算子の右側にr値があるため、前述はコピー代入ではなく移動代入である必要があります。
この場合、strstr.str(someString)
代わりに使用するだけでおそらく解決できますが、このコンパイラエラーの原因にはまだ興味があります。ちなみにVC++では問題なくコンパイルできます。