为什么尽管所有其他标准 C++ 宏的前缀和后缀都带有双下划线,但 __cplusplus
却没有这样做?
我到处找我能想到的地方都没有成功。
最佳答案
根据 this , cfront(最初的 C++ 编译器)使用 c_plusplus
而不是 __cplusplus
。
使用 c_plusplus
的决定似乎是任意的(并且它忽略了“保留标识符”约定,如果它当时存在的话)。
我假设 __cplusplus
后来被选择保留标识符,同时最小化与原始宏名称相比的差异。
.
all other standard C++ macros being both all uppercase and prefixed and suffixed by a double underscore
正如评论中所指出的,并不是所有的都是。近年来,委员会似乎更喜欢小写名称(在添加 __has_include
和 __cpp_*
功能测试宏时)。
关于c++ - 标准宏命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54659157/