CXX5630
标准库中保留的标识符、宏和函数不得被定义、重定义或取消定义
通常情况下, #undef 一个在标准库中定义的宏是一个不良实践。同样, 如果 #define 一个宏名称,但该名称是 C++ 的保留标识符或 C++ 的关键字,或是标准库中的宏、对象或函数的名称,那么这种行为也是一个不良实践。举例来说,存在一些特定的保留字和函数名称,如果重新定义或取消定义它们就会产生一些 未定义行为 。这些名称包括 defined、LINE、FILE、DATE、TIME 、STDC、errno 和 assert。
登录查看完整文章