相关疑难解决方法(0)

为什么覆盖和最终标识符具有特殊含义而不是保留关键字?

在C++ 11中添加了override说明符final说明​​符.它们与添加到C++ 11中的其他说明符(例如constexprdecltype)不同,因为它们不是关键字,因此可用作标识符:

int main()
{
  int override = 0 ;    // Ok
  int final = 0 ;       // Ok
  //int constexpr = 0 ; // Error
}
Run Code Online (Sandbox Code Playgroud)

它们被称为具有特殊含义的标识符,在C++ 11标准部分2.11 [lex.name](强调我的)草案中有所涉及:

表3中标识符在出现在特定上下文中时具有特殊含义.当在语法中引用时,显式地使用这些标识符而不是使用标识符语法生成.任何关于给定标识符是否具有特殊含义的歧义都被解析为将该标记解释为常规标识符.

表3 - 具有特殊含义列表的标识符覆盖最终.

为什么这两个说明符最终成为具有特殊含义的标识符而不是关键字

c++ keyword c++11

29
推荐指数
1
解决办法
1424
查看次数

标签 统计

c++ ×1

c++11 ×1

keyword ×1