名稱空間
變體
操作

std::isunordered

來自 cppreference.com
< cpp‎ | 數值‎ | 數學
 
 
 
常用數學函式
函式
基本操作
(C++11)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指數函式
(C++11)
(C++11)

(C++11)
(C++11)
冪函式
(C++11)
(C++11)
三角
雙曲函式
(C++11)
(C++11)
(C++11)

誤差函式和伽馬函式
(C++11)
(C++11)
(C++11)
(C++11)
取整浮點運算
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮點操縱函式
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類和比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
isunordered
(C++11)
型別
(C++11)
(C++11)
(C++11)
宏常量
分類
(C++11)(C++11)(C++11)(C++11)(C++11)


 
定義於標頭檔案 <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( /* floating-point-type */ x,
                            /* floating-point-type */ y );
(C++23 起)
定義於標頭檔案 <cmath>
template< class Arithmetic1, class Arithmetic2 >
bool isunordered( Arithmetic1 x, Arithmetic2 y );
(A) (C++11 起)
(自 C++23 起為 constexpr)
1) 確定浮點數 xy 是否無序,即其中一個或兩個是 NaN,因此無法進行有意義的比較。 庫為所有 cv-unqualified 浮點型別提供了引數 xy 的過載。(C++23 起)
A) 為所有其他算術型別組合提供了附加過載。

目錄

[編輯] 引數

x, y - 浮點數或整數值

[編輯] 返回值

如果 xy 是 NaN,則為 true,否則為 false

[編輯] 注意

不要求嚴格按照 (A) 提供額外的過載。它們只需足以確保對於其第一個引數 num1 和第二個引數 num2

  • 如果 num1num2 的型別為 long double,則 std::isunordered(num1, num2) 具有與 std::isunordered(static_cast<long double>(num1),
                     static_cast<long double>(num2))
    相同的效果。
  • 否則,如果 num1 和/或 num2 的型別為 double 或整數型別,則 std::isunordered(num1, num2) 具有與 std::isunordered(static_cast<double>(num1),
                     static_cast<double>(num2))
    相同的效果。
  • 否則,如果 num1num2 的型別為 float,則 std::isunordered(num1, num2) 具有與 std::isunordered(static_cast<float>(num1),
                     static_cast<float>(num2))
    相同的效果。
(直至 C++23)

如果 num1num2 具有算術型別,則 std::isunordered(num1, num2) 具有與 std::isunordered(static_cast</*common-floating-point-type*/>(num1),
                 static_cast</*common-floating-point-type*/>(num2))
相同的效果,其中 /*common-floating-point-type*/ 是浮點型別,在 num1num2 的型別之間具有最高的浮點轉換等級和最高的浮點轉換子等級,整數型別的引數被認為具有與 double 相同的浮點轉換等級。

如果不存在具有最高等級和次等級的浮點型別,則過載決議不會從提供的過載中產生可用的候選函式。

(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)
檢查給定數字是否為 NaN
(函式) [編輯]
C 文件 中關於 isunordered 的內容