C++ 为什么C++;标准未提及uu STDC u IEC u 559 uuu?

C++ 为什么C++;标准未提及uu STDC u IEC u 559 uuu?,c++,c++11,C++,C++11,根据C++11标准[C.math],头与标准C库头 (当然,有几个不同之处,——名称空间、重载等——但在这里可以忽略它们。) 根据C99标准附录F,“定义\uu STDC\u IEC\u 559\uu的实施应符合附录F中的规范 例如,如果两个参数都为零,atan2可能会导致域错误,但如果定义了\uu STDC\u IEC\u 559\uu,则不能导致域错误 在C99中,许多行为还取决于是否定义了\uuuuuuStDC\uIEC\u559\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu

根据C++11标准[C.math],
头与标准C库头

(当然,有几个不同之处,——名称空间、重载等——但在这里可以忽略它们。)
根据C99标准附录F,“定义
\uu STDC\u IEC\u 559\uu
的实施应符合附录F中的规范

例如,如果两个参数都为零,
atan2
可能会导致域错误,但如果定义了
\uu STDC\u IEC\u 559\uu
,则不能导致域错误

在C99中,许多行为还取决于是否定义了
\uuuuuuStDC\uIEC\u559\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

然而,在C++11标准中似乎没有提到
\uuuuuu STDC\uuu IEC\u559\uuuuuu

如果是这样的话,C++实现是否符合附件F?< /P >中的规范?

>我认为 STD::No.IcCeC99.()/Case>是一个替代品,但它似乎只提到了类型。

< P> C++标准(N37 97)引用了C标准库,见S1.2/2. ISO/IEC 9899:1999第7条和ISO/IEC 9899:1999/Cor.1:2001第7条中描述的库 ISO/IEC 9899:1999/Cor.2:2003第7条以下称为C标准库

第18至30条和第四条第四款中所注明的条件,C标准库是C++标准的一个子集。 图书馆

标准中没有提到那个符号,我不希望它被定义,因为它看起来是特定于标准C的。如果没有定义这个符号,C++就不受附件F < /P >的约束。 < C++ >标准中包含了IEC 559的多个注释,其中的C++更类似于C++。比如说,

对于
为_iec559!=错误

18.3.2.4/56中有具体提及

静态constexpr bool为iec559

当且仅当类型符合IEC 559标准218时为真

对所有浮点类型都有意义


<>我认为公平地说C++包含了所有相同的功能(或者缺少它们),但是它适应了C++世界。

我想你会发现,这是因为C++标准没有完全重新定义C标准,在这里,它涉及到运行时库,但是引用它们,因此,他们不必引用C标准引用的所有内容。“一个符合标准的实施是_iec559!=错误的”:规范中说明了这一点?它说“以下引用文件对于本文件的应用是必不可少的。”这不是通过引用包含的。其他C++宏,如<代码>,ysSTdcBMPyMyLyEnqyWC*由C++定义。@ PATATOSWATTER:C++标准包含C标准库的程度在第18至第30条和附录C.4中列出。这一切似乎足够清楚,我。@ DavID.PFX你的第一段听起来好像它暗示了宏是由C++所需要的。现在我看到第二段似乎走了另一条路。不管怎样,你不必提及C++如何或如何引用附件F。这个答案似乎很混乱和不完整。C++没有义务定义符号,而在我看来,它可以自由地替代一种更类似C++的方法。