如何检查C ++编译器是否使用IEEE 754浮点标准

我想问一个这样的问题,如果编译器使用这个标准,定义检查会很好地回答这个问题。 然而,这只为C炒作。 有没有办法在C ++中做同样的事情?

我不希望将浮点types转换为文本或使用一些非常复杂的转换函数。 我只需要编译器检查。 如果您知道这些兼容编译器的列表,请发布链接。 我无法find它。

其实你有一个更简单的方法来实现这个在C + +。 从C ++标准18.2.1.1std存在类numeric_limits 。 为了访问所说的静态成员,你只需要这样做:

 std::numeric_limits<double>::is_iec559; 

要么:

 std::numeric_limits<float>::is_iec559; 

如果使用IEEE 754,则返回true ,否则返回false。

作为另一种方法, 亚当答案的第二部分也应该为C ++做。