命名空间
变体
操作

HUGE_VALF, HUGE_VAL, HUGE_VALL

来自 cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
常见数学函数
函数
基本运算
(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 的正无穷大,分别。

[edit] 注释

在不支持浮点无穷大的实现中,这些宏扩展为其各自类型的最大有限数。

C++98 添加了 floatlong double 的数学函数重载。存在一个问题,即 float 重载不能返回 HUGE_VAL 来指示溢出,因为此宏不能保证可以表示为 float

LWG 问题 357 被提出以针对此问题。LWG 发现 C99 存在相同问题(floatlong double 重载也添加到 C99 中),并且 C99 引入了新的宏 HUGE_VALFHUGE_VALL 来解决此问题。因此,该问题已关闭,并且 C99 解决方案已在 C++11 中采用。

[edit] 另请参阅

(C++11)
评估为正无穷大或保证溢出 float 的值
(宏常量) [edit]
C 文档 for HUGE_VAL