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 | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовке
<cmath>
|
||
|
#define HUGE_VALF /* implementation defined */
|
(начиная с C++11) | |
|
#define HUGE_VAL /* implementation defined */
|
||
|
#define HUGE_VALL /* implementation defined */
|
(начиная с 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 имеет ту же проблему ( float и long double перегрузки также были добавлены в C99), и C99 ввел новые макросы HUGE_VALF и HUGE_VALL для решения проблемы. Поэтому вопрос был закрыт, и решение из C99 было принято в C++11.
Смотрите также
|
(C++11)
|
вычисляется в положительную бесконечность или значение, гарантированно вызывающее переполнение
float
(макроконстанта) |
|
Документация C
для
HUGE_VAL
|
|