Dlaczego dodatkowe nawiasy w funkcji odczytu plików?
Rozumiem, że poniższy kod (stąd) służy do odczytu zawartości pliku do ciągu:
#include <fstream>
#include <string>
std::ifstream ifs("myfile.txt");
std::string content( (std::istreambuf_iterator<char>(ifs) ),
(std::istreambuf_iterator<char>() ) );
Nie rozumiem jednak, dlaczego takie pozornie zbędne nawiasy są wymagane. Na przykład następujący kod nie jest kompilowany:
#include <fstream>
#include <string>
std::ifstream ifs("myfile.txt");
std::string content(std::istreambuf_iterator<char>(ifs),
std::istreambuf_iterator<char>() );
Dlaczego jest tak wiele nawiasów, aby to skompilować?