给定这样的代码段:
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
using namespace std;
int main(){
ifstream file("1.txt");
string str((istream_iterator<char>(file)),istream_iterator<char>());
file.close();
cout<<str<<endl;
}
该代码使用 istream_iterator 从文件构造字符串。
请注意,字符串构造函数的第一个参数用一对括号括起来。如果我省略括号,则会出现错误。在 VC++ 2008 中,会出现链接错误。在 G++ 中,代码输出错误。
我对括号感到很奇怪。有什么区别,为什么?