根据cppref页面,std::fmodf被添加到C++11中的cmath中,但这怎么可能,因为这不意味着C++11之前的math.h就会破坏cmath的可压缩性吗?我找不到在C++11中添加了std::fmodf的任何引用,并且想知道这是在哪里说的。
谢谢
发布于 2021-05-22 12:27:39
在C++11标准中,std::fmodf声明在哪里?
没有直接提到它(虽然可能应该在函数列表中提到它,或者显式地省略)。导致std::fmodf存在的更改如下(引用N3337草案的话):
下列参考文档对于本文档的应用是必不可少的。对于注明日期的参考资料,只适用于引用的版本。对于未注明日期的参考资料,适用参考文件的最新版本(包括任何修改)。
通过下列规则:
c.math 这些标头的内容分别与标准C库标头和相同,但有以下更改:
C99添加fmodf。当C++开始引用C99的标准库而不是C89时,它被继承到了C89。
注意,“以下更改”没有列出fmodf的遗漏。
为什么fmodf没有列在函数列表(26.8/3和26.8/9)中?它被添加到C++17标准中的列表中。
这似乎是编辑上的错误。在C++17中,它似乎已经由P0175修正了,它建议:
在这篇社论文件中,我们建议在工作草案中添加C++中引用C标准的C库头的完整摘要(见表15)。这些概要将替换标题为“头概要”的各个表。
Sidenote:std::fmodf在C++中是相当无用的,因为您可以简单地使用std::fmod,这在C++98之后就已经存在了。
https://stackoverflow.com/questions/67649395
复制相似问题