g ++允许从ifstream实例构造istream_iterator:
std::ifstream ifstr("test.txt");
std::istream_iterator<std::string> iter1(ifstr);
Run Code Online (Sandbox Code Playgroud)
...但它不允许使用未命名的临时构造:
std::istream_iterator<std::string> iter2(std::ifstream("test.txt"));
Run Code Online (Sandbox Code Playgroud)
这给出了:
错误:没有用于调用'std :: istream_iterator,ptrdiff_t> :: istream_iterator(std :: ifstream)'的匹配函数
有谁知道为什么这不起作用?- 谢谢!