标准宏命名约定

时间:2019-02-12 21:48:17

标签: c++

为什么为什么所有其他标准C ++宏都以双下划线作为前缀和后缀,但__cplusplus却跟不上?

我看过的所有地方都没有成功。

2 个答案:

答案 0 :(得分:-1)

根据this,cfront(原始C ++编译器)使用c_plusplus而不是__cplusplus

使用c_plusplus的决定似乎是任意的(如果当时完全存在,它会忽略“保留标识符”约定)。

我假定稍后选择__cplusplus来保留标识符,同时与原始宏名相比将差异最小化。


  

所有其他标准C ++宏都是大写字母,并带有双下划线作为前缀和后缀

如评论中所述,并非全部。近年来,提交程序似乎更倾向于小写名称(在添加__has_include__cpp_*功能测试宏时)。

答案 1 :(得分:-2)

这应该与您无关。保留以__开头(双下划线)的任何名称,以便使用__cplusplus

此外,假设C ++中的所有预定义宏都是大写是错误的。例如,__unix__是小写字母,还有此处列出的其他一系列标准宏:https://en.cppreference.com/w/cpp/preprocessor/replace