B.4 有特殊含义的标识符
C++(www.cppentry.com)社区讨厌新增关键字,因为它们可能与现有代码发生冲突。这就是标准委员会改变关键字auto的用法,并赋予其他关键字(如virtual和delete)新用法的原因所在。C++(www.cppentry.com)11提供了另一种避免新增关键字的机制,即使用具有特殊含义的标识符。这些标识符不是关键字,但用于实现语言功能。编译器根据上下文来判断它们是常规标识符还是用于实现语言功能:
|
在上述代码中,语句#1中的final是一个常规标识符,而语句#2中的final使用了一种语言功能。这两种用法彼此不会冲突。
另外,C++(www.cppentry.com)还有很多经常出现在程序中,但不被保留的标识符。这包括头文件名、库函数名和main(必不可少的函数的名称,程序从该函数开始执行)。只要不发生名称空间冲突,就可将这些标识符用于其他目的,但没有理由这样做。也就是说,完全可以编写下面的代码,但常识告诉您不应这样做:
|

