Почему лишние скобки в функции чтения файлов?
Я так понимаю, что следующий код (отсюда) используется для чтения содержимого файла в строку:
#include
#include
std::ifstream ifs("myfile.txt");
std::string content( (std::istreambuf_iterator(ifs) ),
(std::istreambuf_iterator() ) );
Тем не менее, я неНе понятно, почему такие, казалось бы, лишние скобки требуются. Например, следующий код не компилируется:
#include
#include
std::ifstream ifs("myfile.txt");
std::string content(std::istreambuf_iterator(ifs),
std::istreambuf_iterator() );
Почему для компиляции нужно так много скобок?