c++ - 标准宏命名约定

标签 c++

为什么尽管所有其他标准 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/

相关文章:

c# - 获取传递给子模块 (C#.NET dll) 内的主模块 (VC++ exe) 的参数

c++ - 始终有一个已创建的线程或在必要时创建线程

c++ - for(;;) 和 while(1) 有什么区别?

c++ - QT 示例可执行文件无法运行,缺少 QT5Cored.dll

c++ - 不完整类型模板构造函数声明的无效使用

c++ - 如何检测U盘盘符

c++ - 按升序从消息队列中读取数据

c++ - SDL程序启动后立即退出。我做错了什么?

c++ - 当两个 std::map 对象相同时

c++ - STL-Sort 未按预期工作