Учитывая такой сегмент кода:
#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++ код имеет неправильный вывод.
Я очень странно отношусь к скобкам. Какая разница и почему?