Web Analytics
yangyang

码农兼一个普普通通小青年

vexing parse


C++编译器中最烦人的分析机制

Scott Meyers 在《Effective STL》一书的第六条提出了一个“当心C++最令人烦恼的解析"(the most vexing parse)的问题。“the most vexing parse” 这个术语来形容 C++ 标准对于 declaration 语句的消歧义(ambiguity resolution)约定与常人的认知相悖。最令人烦恼的解析 (most vexing parse)是C++中的一种反直觉的二义性解析形式。 在一些场景下,编译器无法区分某语句是初始化时某对象的参数,还是声明一个函数时指定参数类型。在这些情况下,编译器将该行解释为函数声明。简言之就是“调用构造函数被误认为是函数声明的问题”,即 形如 Type() 或 Type(name) 的表达在某些情况下具有歧义(syntax ambiguity)。 …

vexing parse

  • 1