函数声明中括号的歧义
在“最麻烦的解析”现象中,使用模板时会出现歧义。解析函数声明时就会出现这样的一个实例。考虑以下行:
vector<int> v(istream_iterator<int>(cin), istream_iterator<int>());
该行可以解释为函数声明或变量声明。问题是,如何将第一个临时迭代器解释为类型?
与直觉相反,istream_iterator
这种特殊的语法是从 C 继承的,在 C 语言中,这种括号也被认为是一个错误。在这种情况下,括号不会影响表达式的含义。它只是充当不必要的噪音,导致混乱。
总之,给定行中的第一个临时迭代器表示类型 istream_iterator
以上是如何将 istream_iterator(cin) 解释为'最令人烦恼的解析”中的类型?的详细内容。更多信息请关注PHP中文网其他相关文章!