包含标准库标头的翻译单元不可 #define 或 #undef 在任何标准库标头中声明的名字。

使用标准库任何部分的翻译单元不可 #define 或 #undef 词法上等同于下列内容的名称:

  • 关键字

  • 有特殊含义的标识符

  • 任何标准属性记号,但可定义 likely 与 unlikely 为函数式宏。(C++20 起)

(C++11 起)

否则,行为未定义。