HUGE_VALF, HUGE_VAL, HUGE_VALL
來自 cppreference.com
定義於標頭檔案 <cmath> |
||
#define HUGE_VALF /* 由實現定義 */ |
(C++11 起) | |
#define HUGE_VAL /* 由實現定義 */ |
||
#define HUGE_VALL /* 由實現定義 */ |
(C++11 起) | |
宏 HUGE_VALF、HUGE_VAL 和 HUGE_VALL 擴充套件為正浮點常量表達式,當發生溢位時,它們與浮點函式和運算子返回的值相等(參見 math_errhandling)。
常量 | 解釋 |
HUGE_VALF
|
擴充套件為正 float 表示式,指示溢位 |
HUGE_VAL
|
擴充套件為正 double 表示式,指示溢位,不一定能表示為 float |
HUGE_VALL
|
擴充套件為正 long double 表示式,指示溢位,不一定能表示為 float 或 double |
在支援浮點無窮大的實現上,這些宏總是分別擴充套件為 float、double 和 long double 的正無窮大。
[編輯] 注意
在不支援浮點無窮大的實現上,這些宏擴充套件為其各自型別的最大有限數。
C++98 添加了數學函式的 float 和 long double 過載。存在一個問題,即 float 過載不能返回 HUGE_VAL 來指示溢位,因為此宏不保證能表示為 float。
LWG issue 357 旨在解決此問題。LWG 發現 C99 存在相同的問題(C99 也添加了 float 和 long double 過載),並且 C99 引入了新的宏 HUGE_VALF 和 HUGE_VALL 來解決該問題。因此,該問題已關閉,C99 的解決方案在 C++11 中被採納。
[編輯] 另請參閱
(C++11) |
評估為正無窮大或保證使 float 溢位的值 (宏常量) |
C 文件 關於 HUGE_VAL
|