语言扩展和新关键字
Language extensions and new keywords
关于扩展c++语言和添加'非标准'关键字的标准是怎么说的?关键字是否必须以__(双下划线)开头,或者可以"常规",即以字母开头?如果我要创建c++的扩展,并有一个新的关键字,我是否必须使它看起来像这样:
__new_keyword
或者简单点:
new_keyword.
谢谢。
标准规定带有两个下划线的标识符是为编译器保留的。所以,如果你想用一种安全的方式在你的c++编译器中添加语言扩展,这将是一种方法。请注意,如果您只是在编写预处理器,那么您使用的编译器可能与您选择的编译器相冲突。但是由于预处理的代码应该相当简单,所以这应该不是问题。
如果我正在创建c++扩展,我可以使用以字母开头的关键字吗?或者我必须以下划线开头吗?
你可以做任何你想做的事,因为它不是c++,因此不需要遵循任何东西。但是,如果您希望将与用户创建的名称的冲突降到最低,标准规定以两个下划线开头的标识符由c++实现保留,以下划线后跟大写字母开头的标识符也是如此。
注意,这只会阻止您与用户代码发生冲突。您仍然可以与您的标准库实现或您正在使用的任何编译器发生冲突。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++中的"inline"关键字
- 如何确保C++函数在定义之前声明(如override关键字)
- 是否可以通过C++扩展强制多个python进程共享同一内存
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 扩展光电二极管探测器以支持多个传感器
- C++中的VLA,扩展名为std=C++11
- 谷歌模拟和覆盖关键字
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- C++返回 Numpy 数组的 Python 扩展模块
- 扩展可变参数模板中的变量名称
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 扩展C++生成的代码的模板参数类型名称
- 如何在Boost::wave库中扩展token_ids以接受更多关键字
- 在类名后使用 MSVCC 扩展关键字"abstract"是一种好的做法吗?
- 语言扩展和新关键字
- 用一个新关键字扩展c++