fabsf是C ++ 11中std名称空间的一部分吗?

佩德罗·吉梅诺(Pedro Gimeno)

https://en.cppreference.com/w/cpp/numeric/math/fabs页面提到std::fabsf自C ++ 11起可用。但是,当我使用G ++ 6.3.0甚至编译使用的最简单的程序时std::fabsf,它表示fabsf也不是的成员std

#include <cmath>
int main()
{
    return (int)std::fabsf(0.0f);
}

哪一个是对的?G ++ 6.3.0是否没有将其包含在中std是错误的,还是上述页面std在C ++ 11中提及它时是错误的

并且如果是G ++错误,那么在更高版本中是否已解决?

库比

是的,fabsf并且所有其他-f/-l函数math.h都是C ++ 11中std命名空间的一部分cmath它是在2002年左右添加的,当时C ++ 0x在C99标准库的基础上重新构建,该库[c.math]/4包括这些新功能。

[c.math]/4

这些标头的内容是一样的标准C库头<math.h>并且<stdlib.h>分别具有以下变化:

(历史记录:添加所有-f/-l变体的意图在C ++ 03中已经显而易见,请参阅LWG289

但是,直到2016年,列出cmath内容的表都被忽略了,那时p0175r1修复了所有此类表以使其符合标准。

p0175r1

对标准的影响

更改纯粹是社论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章