HUGE_VALF, HUGE_VAL, HUGE_VALL
| Common mathematical functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Mathematical special functions (C++17) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Mathematical constants (C++20) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Basic linear algebra algorithms (C++26) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Data-parallel types (SIMD) (C++26) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Floating-point environment (C++11) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Complex numbers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Numeric array (
valarray
)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pseudo-random number generation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Bit manipulation (C++20) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Saturation arithmetic (C++26) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Factor operations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Interpolations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Generic numeric operations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| C-style checked integer arithmetic | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Nearest integer floating point operations | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| Floating point manipulation functions | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| Classification and comparison | |||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||
| Types | |||||||||||||||||||||||||||||||||||||||||
| Macro constants | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<cmath>
|
||
|
#define HUGE_VALF /* implementation defined */
|
(desde C++11) | |
|
#define HUGE_VAL /* implementation defined */
|
||
|
#define HUGE_VALL /* implementation defined */
|
(desde C++11) | |
Las macros HUGE_VALF , HUGE_VAL y HUGE_VALL se expanden a expresiones constantes de punto flotante positivas que comparan igual a los valores devueltos por funciones y operadores de punto flotante en caso de desbordamiento (consulte math_errhandling ).
| Constante | Explicación |
HUGE_VALF
|
Se expande a una expresión float positiva que indica desbordamiento |
HUGE_VAL
|
Se expande a una expresión double positiva que indica desbordamiento, no necesariamente representable como float |
HUGE_VALL
|
Se expande a una expresión long double positiva que indica desbordamiento, no necesariamente representable como float o double |
En implementaciones que admiten infinitos de punto flotante, estas macros siempre se expanden a los infinitos positivos de float , double , y long double , respectivamente.
Notas
En implementaciones que no admiten infinitos de punto flotante, estas macros se expanden al número finito máximo de sus respectivos tipos.
C++98 añadió float y long double sobrecargas de funciones matemáticas. Existe un problema en que las float sobrecargas no pueden retornar HUGE_VAL para indicar desbordamiento porque esta macro no está garantizada que sea representable como un float .
LWG issue 357 se planteó para abordar este problema. LWG encontró que C99 tiene el mismo problema ( float y long double overloads también fueron añadidos en C99), y C99 introdujo nuevas macros HUGE_VALF y HUGE_VALL para resolver el problema. Por lo tanto, el issue fue cerrado y la resolución de C99 fue adoptada en C++11.
Véase también
|
(C++11)
|
evalúa a infinito positivo o el valor garantizado para desbordar un
float
(constante macro) |
|
Documentación C
para
HUGE_VAL
|
|