Visual Studio でastring foo
を指定すると、次のようにして単語を a に分割できますvector
。
vector fooVec{ istream_iterator<string>(istringstream(foo)), istream_iterator<string>() };
しかし、これは gcc 5.1 ではコンパイルできません。エラーが発生します:
型の右辺値からの型
std::istream_iterator<std::basic_string<char> >::istream_type&
{aka }の非 const 参照の無効な初期化std::basic_istream<char>&
std::basic_istream<char>
gccにバグがあり、私たち自身のJonathan Wakelyによって修正されたことがわかりました。istringstream
これはそのバグの拡張ですか、それともここで Rvalue を使用することは違法ですか?