std::isunordered
来自cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| 在标头 <cmath> 定义
|
||
| (1) | ||
bool isunordered( float x, float y ); bool isunordered( double x, double y ); bool isunordered( long double x, long double y ); |
(C++11 起) (C++23 前) |
|
constexpr bool isunordered( /* 浮点类型 */ x, /* 浮点类型 */ y ); |
(C++23 起) | |
| 在标头 <cmath> 定义
|
||
template< class Arithmetic1, class Arithmetic2 > bool isunordered( Arithmetic1 x, Arithmetic2 y ); |
(A) | (C++11 起) (C++23 起 constexpr) |
1) 确定两个浮点数
x 与 y 是否无序,即一或两者为 NaN,从而无法有意义地彼此比较。标准库提供所有以无 cv 限定的浮点类型作为参数 x 和 y 的类型的重载。(C++23 起)A) 为算术类型的所有其他组合提供额外重载。
参数
| x, y | - | 浮点或整数值 |
返回值
在 x 或 y 为 NaN 时返回 true,否则返回 false。
注解
额外重载不需要以 (A) 的形式提供。它们只需要能够对它们的第一个实参 num1 和第二个实参 num2 满足以下要求:
|
(C++23 前) |
|
如果 如果不存在等级和子等级最高的浮点数类型,那么在重载决议时不会从提供的重载中产生可用的候选。 |
(C++23 起) |
示例
运行此代码
#include <cmath>
#include <iostream>
#define SHOW_UNORDERED(x, y) \
std::cout << std::boolalpha << "isunordered(" \
<< #x << ", " << #y << "): " \
<< std::isunordered(x, y) << '\n'
int main()
{
SHOW_UNORDERED(10, 01);
SHOW_UNORDERED(INFINITY, NAN);
SHOW_UNORDERED(INFINITY, INFINITY);
SHOW_UNORDERED(NAN, NAN);
}
输出:
isunordered(10, 01): false
isunordered(INFINITY, NAN): true
isunordered(INFINITY, INFINITY): false
isunordered(NAN, NAN): true
参阅
(C++11) |
归类给定的浮点数 (函数) |
(C++11) |
检查给定的数是否 NaN (函数) |
isunordered 的 C 文档
| |