为什么为什么所有其他标准C ++宏都以双下划线作为前缀和后缀,但__cplusplus
却跟不上?
我看过的所有地方都没有成功。
答案 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