【发布时间】:2012-09-25 19:49:10
【问题描述】:
我了解以下代码(from here)用于将文件内容读取为字符串:
#include <fstream>
#include <string>
std::ifstream ifs("myfile.txt");
std::string content( (std::istreambuf_iterator<char>(ifs) ),
(std::istreambuf_iterator<char>() ) );
但是,我不明白为什么需要这些看似多余的括号。例如,以下代码无法编译:
#include <fstream>
#include <string>
std::ifstream ifs("myfile.txt");
std::string content(std::istreambuf_iterator<char>(ifs),
std::istreambuf_iterator<char>() );
为什么编译需要这么多括号?
【问题讨论】:
-
第二个是函数声明。 Most Vexing Parse
标签: c++ compiler-errors ifstream