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>
有谁知道为什么这不起作用?- 谢谢!