std::numeric_limits<T>::infinity
static T infinity() throw(); | (до C++11) | |
static constexpr T infinity() noexcept; | (начиная с C++11) |
Возвращает специальное значение «положительная бесконечность», представленное типом с плавающей точкой T. Имеет смысл только в том случае, если std::numeric_limits<T>::has_infinity == true. В IEEE 754, наиболее распространённом двоичном формате представления чисел с плавающей точкой, положительная бесконечность — это значение, у которого все биты экспоненты установлены, а все биты мантиссы сброшены.
Возвращаемое значение
T |
std::numeric_limits<T>::infinity() |
|---|---|
| /* non-specialized */ |
T() |
| bool |
false |
| char |
0 |
| signedchar |
0 |
| unsignedchar |
0 |
| wchar_t |
0 |
| char8_t (начиная с C++20) |
0 |
| char16_t (начиная с C++11) |
0 |
| char32_t (начиная с C++11) |
0 |
| short |
0 |
| unsignedshort |
0 |
| int |
0 |
| unsignedint |
0 |
| long |
0 |
| unsignedlong |
0 |
| longlong (начиная с C++11) |
0 |
| unsignedlonglong (начиная с C++11) |
0 |
| float |
HUGE_VALF |
| double |
HUGE_VAL |
| longdouble |
HUGE_VALL |
Пример
#include <iostream>
#include <limits>
int main()
{
double max = std::numeric_limits<double>::max();
double inf = std::numeric_limits<double>::infinity();
if (inf > max)
std::cout << inf << " is greater than " << max << '\n';
}
Вывод:
inf is greater than 1.79769e+308
См. также
|
[статический] | определяет типы с плавающей точкой, способные представлять специальное значение «положительная бесконечность» (открытая статическая константа-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/types/numeric_limits/infinity