标准宏命名约定
Standard macros naming conventions
为什么尽管所有其他标准C++宏都以双下划线为前缀和后缀,但__cplusplus
却没有效仿?
到处找过我能想到的,但没有成功。
据此,cfront(原始C++编译器(使用c_plusplus
而不是__cplusplus
。
使用c_plusplus
的决定似乎是任意的(并且它忽略了"保留标识符"约定,如果当时存在的话(。
我假设后来选择__cplusplus
来保留标识符,同时最大限度地减少与原始宏名称相比的差异。.
所有其他标准C++宏都是大写的,并以双下划线为前缀和后缀
正如评论中所指出的,并非所有都是。近年来,提交似乎倾向于使用小写名称(在添加__has_include
和__cpp_*
功能测试宏时(。
这应该与你无关。任何以 __
(双下划线(开头的名称都保留用于实现,因此__cplusplus
都可以。
此外,假设C++中的所有预定义宏都是大写也是错误的。例如,__unix__
是小写的,以及下面列出的一堆其他标准宏:https://en.cppreference.com/w/cpp/preprocessor/replace
相关文章:
- "std::unique_XXX"命名约定背后的基本原理是什么?
- 引发异常的方法的命名约定 (C++)?
- 重载运算符 + 用于向量:命名空间标准
- 如何在不使用命名空间标准的情况下取消设置ios::fixed
- 关于"使用命名空间标准"的问题?
- 一些编码约定/标准实践问题
- 正在使用命名空间标准;必需的
- 标准宏命名约定
- C/C++ 与 C# 的互操作性命名约定
- 更多结构/类,以便更好地命名约定
- 合并函数参数的适当命名约定是什么?
- 返回布尔值的函数的命名约定是什么
- 重置"static"类的函数的命名约定
- 抽象数据类型命名约定:(动态)数组,向量,序列,列表,容器,缓冲区
- C++中私有成员函数的良好命名约定
- C++中私有虚拟函数是否有通用的命名约定
- 什么是 RAII 类的常见命名约定
- 是否“使用命名空间标准::p花边持有人”不符合要求
- 如何在C++中使用第三方库时保持项目的命名约定
- 在c++中是否有变量和函数名的标准命名约定?