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