g++ を使用すると、ifstream インスタンスから istream_iterator を構築できます。
std::ifstream ifstr("test.txt");
std::istream_iterator<std::string> iter1(ifstr);
...しかし、名前のない一時的なもので同じ構築を行うことはできません:
std::istream_iterator<std::string> iter2(std::ifstream("test.txt"));
これは与える:
エラー: 'std::istream_iterator, ptrdiff_t>::istream_iterator(std::ifstream)' の呼び出しに一致する関数がありません</p>
これが機能しない理由を誰かが知っていますか?- ありがとう!