std:: isunordered
Defined in header
<cmath>
|
||
(1) | ||
bool
isunordered
(
float
x,
float
y
)
;
bool
isunordered
(
double
x,
double
y
)
;
|
(since C++11)
(until C++23) |
|
constexpr
bool
isunordered
(
/* floating-point-type */
x,
/* floating-point-type */ y ) ; |
(since C++23) | |
Defined in header
<cmath>
|
||
template
<
class
Arithmetic1,
class
Arithmetic2
>
bool isunordered ( Arithmetic1 x, Arithmetic2 y ) ; |
(A) |
(since C++11)
(constexpr since C++23) |
Parameters
x, y | - | floating-point or integer values |
Return value
true if either x or y is NaN, false otherwise.
Notes
The additional overloads are not required to be provided exactly as (A) . They only need to be sufficient to ensure that for their first argument num1 and second argument num2 :
|
(until C++23) |
If
num1
and
num2
have arithmetic types, then
std
::
isunordered
(
num1, num2
)
has the same effect as
std
::
isunordered
(
static_cast
<
/* common-floating-point-type */
>
(
num1
)
,
If no such floating-point type with the greatest rank and subrank exists, then overload resolution does not result in a usable candidate from the overloads provided. |
(since C++23) |
Example
#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); }
Output:
isunordered(10, 01): false isunordered(INFINITY, NAN): true isunordered(INFINITY, INFINITY): false isunordered(NAN, NAN): true
See also
(C++11)
|
categorizes the given floating-point value
(function) |
(C++11)
|
checks if the given number is NaN
(function) |
C documentation
for
isunordered
|