C++ 2011 中的 nextafter 与 nexttoward 函数?

2024-02-25

C++ 2011 标准库的 nextafter 和 nexttoward 函数有什么区别?


由于这些函数源自 C,因此它们不能重载,这意味着功能相同但具有不同参数(类型)的函数有两个不同的名称。以下是原始签名:

float nextafter(float, float);
float nexttoward(float, long double);

现在标准只是说应该有一些超载 http://en.cppreference.com/w/cpp/numeric/math/nextafter让 C++ 中的事情变得更好(§26.8 [c.math] p11):

此外,还应有足够的额外过载,以确保:

  1. 如果任何参数对应于double参数有类型long double,那么所有参数对应于double参数被有效地转换为long double.
  2. 否则,如果任何参数对应于double参数有类型double或整数类型,则所有参数对应double参数被有效地转换为double.
  3. 否则,对应于的所有参数double参数被有效地转换为float.

另请参见:ISO C 7.5、7.10.2、7.10.6。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 2011 中的 nextafter 与 nexttoward 函数? 的相关文章

随机推荐