名稱空間
變體
操作

HUGE_VALF, HUGE_VAL, HUGE_VALL

來自 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)
型別
(C++11)
(C++11)
(C++11)
宏常量
HUGE_VALFHUGE_VALHUGE_VALL
(C++11)(C++11)
(C++11)
(C++11)
分類
(C++11)(C++11)(C++11)(C++11)(C++11)


 
定義於標頭檔案 <cmath>
#define HUGE_VALF /* 由實現定義 */
(C++11 起)
#define HUGE_VAL  /* 由實現定義 */
#define HUGE_VALL /* 由實現定義 */
(C++11 起)

HUGE_VALFHUGE_VALHUGE_VALL 擴充套件為正浮點常量表達式,當發生溢位時,它們與浮點函式和運算子返回的值相等(參見 math_errhandling)。

常量 解釋
HUGE_VALF 擴充套件為正 float 表示式,指示溢位
HUGE_VAL 擴充套件為正 double 表示式,指示溢位,不一定能表示為 float
HUGE_VALL 擴充套件為正 long double 表示式,指示溢位,不一定能表示為 floatdouble

在支援浮點無窮大的實現上,這些宏總是分別擴充套件為 floatdoublelong double 的正無窮大。

[編輯] 注意

在不支援浮點無窮大的實現上,這些宏擴充套件為其各自型別的最大有限數。

C++98 添加了數學函式的 floatlong double 過載。存在一個問題,即 float 過載不能返回 HUGE_VAL 來指示溢位,因為此宏不保證能表示為 float

LWG issue 357 旨在解決此問題。LWG 發現 C99 存在相同的問題(C99 也添加了 floatlong double 過載),並且 C99 引入了新的宏 HUGE_VALFHUGE_VALL 來解決該問題。因此,該問題已關閉,C99 的解決方案在 C++11 中被採納。

[編輯] 另請參閱

(C++11)
評估為正無窮大或保證使 float 溢位的值
(宏常量) [編輯]
C 文件 關於 HUGE_VAL