发布于 2017-06-05 13:51:31
如果我们看标题第5段和第6段
在C中定义为宏的名称将在C++标准库中定义为宏,即使C授予作为函数的实现许可。注意:C中定义为宏的名称包括以下内容:
assert、offsetof、setjmp、va_arg、va_end和va_start。-end注记 在C中定义为函数的名称将定义为C++标准库中的函数。
因此,如果在C中将其定义为宏,那么它将是C++中的宏。不过也有几个例外。摘自support.runtime第7和第8段
标头
<cstdalign>和标头<stdalign.h>不应定义名为alignas的宏。 标头<cstdbool>和标头<stdbool.h>不应定义名为bool、true或false的宏。
尽管headers/7也涵盖了这些异常
在C++中作为关键字或操作符的标识符不应定义为C++标准库标头中的宏。
也有一个例外,即7.12.3分类宏中定义的所有分类宏都会被每10/10的函数重载。
分类/比较函数的行为与C宏的行为相同,相应的名称在C标准中定义在7.12.3分类宏和7.12.14比较宏中。对于三种浮点类型,每个函数都被重载,如下所示: 布尔分类(浮x);bool isinf(浮x);bool isinf(浮x);bool isnan(浮x);bool正态(浮x);bool signbit(浮x);bool更大(浮x,浮y);bool isgreaterequal(浮x,浮y);bool islessequal(浮x浮子y);bool岛红杉(浮x浮y);bool isless(浮x浮子y);bool isunordered(浮x浮子y);int fpclassify(双x);bool有限(浮x浮x);bool isinf(浮y);bool is超(浮x浮子y);bool是正态分布( double x);bool signbit(double x);bool更大( double x,double y);bool isgreaterequal(double x,double y);bool isgreaterequal( double x,double y);bool isinf( double x,double y);bool孤岛续集( double x,double y);bool Isess大号( double x,double y);bool isunordered(double x,double y);int fpclassify(长双x);bool isinf(长双x);bool isnan(长双x);bool isinf(长双x);bool isnan(长双x);bool isinf(长双x);bool int(长双x);bool isinf(长双x);bool isinf(长双x);bool int(长双x);bool isinf(长双x);bool isnan(长双x);bool isinf(长双x);bool isinf(长bool更大(长双x,长双y);bool等于(长双x,长双y);bool无序(长双x,长双y);bool岛序(长双x,长双y);bool岛大(长双x,长双y);bool无序(长双x,长双y);
https://stackoverflow.com/questions/44369648
复制相似问题