我正在思考第6项,这是关于有效STL:改善您使用标准模板库的50种具体方法的最令人烦恼的解析,作者:Scott Meyers。
ifstream dataFile("ints.dat");
list<int> data(istream_iterator<int>(dataFile), // warning! this doesn't do
istream_iterator<int>()); // what you think it does
所有这些都很有趣(以自己扭曲的方式),但它并没有帮助我们说出我们想说的内容,即列表对象应该用文件的内容进行初始化。现在我们知道我们要打败的解析,这很容易表达。用括号括起形式参数声明是不合法的,但是使用括号将参数转换为函数调用是合法的,因此通过添加一对括号,我们强制编译器以我们的方式查看事物:
list<int> data((istream_iterator<int>(dataFile)), // note new parens
istream_iterator<int>0); // around first argument
// to list's constructor
我的问题是作者的意思是什么? &#34;用括号括起形式参数声明是不合法的,但是用括号括起函数调用的参数是合法的,并且#34;
由于