我如何知道编译器支持什么标准格式

How do I know what standard formats the compiler supports?

本文关键字:什么 标准 格式 支持 编译器 何知道      更新时间:2023-10-16

我知道一种格式是"IEEE 754浮点标准"

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

 std::numeric_limits<float>::is_iec559;

还有哪些其他标准格式
如何检查C++编译器是否遵循该格式?

编辑:有多少种格式?它们是什么?根据c++语言

如果没有,numeric_limits的设计显然考虑到了IEEE 754。您只能知道实现是否符合IEEE 754。

但请记住,您应该使用has_infinityhas_quiet_NaN等来检查单个功能——基本上,您检查的是某些功能,而不是特定的浮点格式。

通常,在std::numeric_limits<double>::is_iec559上实现不是一个好主意,因为对于g++,即使使用fastmath选项编译代码时也是如此,例如,该选项不支持IEEE 754 NaN行为(它大多只是二进制级兼容的表示)。

即,在实践中,is_iec559不会告诉您实现是否符合IEEE 754。

所以,您可以使用编译器特定的方法。

干杯&hth。,