std::numeric_limits<T>::has_infinity
static const bool has_infinity; | (до C++11) | |
static constexpr bool has_infinity; | (начиная с C++11) |
Значение std::numeric_limits<T>::has_infinity равно true для всех типов T, способных представлять положительную бесконечность как отдельное специальное значение. Эта константа имеет смысл для всех типов с плавающей точкой и гарантированно равна true, если std::numeric_limits<T>::is_iec559 == true.
Стандартные специализации
T | значение std::numeric_limits<T>::has_infinity |
|---|---|
| /* non-specialized */ |
false |
| bool |
false |
| char |
false |
| signedchar |
false |
| unsignedchar |
false |
| wchar_t |
false |
| char8_t (начиная с C++20) |
false |
| char16_t (начиная с C++11) |
false |
| char32_t (начиная с C++11) |
false |
| short |
false |
| unsignedshort |
false |
| int |
false |
| unsignedint |
false |
| long |
false |
| unsignedlong |
false |
| longlong (начиная с C++11) |
false |
| unsignedlonglong (начиная с C++11) |
false |
| float | обычно true |
| double | обычно true |
| longdouble | обычно true |
Пример
#include <iostream>
#include <limits>
int main()
{
std::cout << std::boolalpha
<< std::numeric_limits<int>::has_infinity << '\n'
<< std::numeric_limits<long>::has_infinity << '\n'
<< std::numeric_limits<float>::has_infinity << '\n'
<< std::numeric_limits<double>::has_infinity << '\n';
}
Возможный вывод:
false false true true
См. также
|
[static] | возвращает значение положительной бесконечности для заданного типа с плавающей точкой (открытая статическая функция-член) |
|
[static] | определяет типы с плавающей точкой, способные представлять специальное значение «тихое не число» (NaN) (открытая статическая константа-член) |
|
[static] | определяет типы с плавающей точкой, способные представлять специальное значение «сигнальное не число» (NaN) (открытая статическая константа-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/types/numeric_limits/has_infinity