# std::numeric_limits<T>::is_integer

< cpp‎ | types‎ | numeric limits

static const bool is_integer; |  | (C++11 前)
static constexpr bool is_integer; |  | (C++11 起)

std::numeric_limits<T>::is_integer 的值对所有整数算术类型 `T` 为 true ，对其他为 false 。此常量对所有特化有意义。

### 标准特化

`T` | std::numeric_limits<T>::is_integer 的值
/* non-specialized */ | false
bool | true
char | true
signed char | true
unsigned char | true
wchar_t | true
char8_t (C++20) | true
char16_t (C++11) | true
char32_t (C++11) | true
short | true
unsigned short | true
int | true
unsigned int | true
long | true
unsigned long | true
long long (C++11) | true
unsigned long long (C++11) | true
float | false
double | false
long double | false

### 示例

    #include <cstddef>
    #include <cstdint>
    #include <numeric>

    int main()
    {
        static_assert(
                std::numeric_limits<bool>::is_integer
            &&  std::numeric_limits<std::size_t>::is_integer
            &&  std::numeric_limits<std::int32_t>::is_integer
            &&  std::numeric_limits<std::int64_t>::is_integer
            &&  std::numeric_limits<decltype(42)>::is_integer
            && !std::numeric_limits<float>::is_integer
            && !std::numeric_limits<double>::is_integer
            && !std::numeric_limits<long double>::is_integer
            && !std::numeric_limits<decltype([](){})>::is_integer // P0315R4
        );
    }

### 参阅

is_integral (C++11) | 检查类型是否为整型 (类模板)
is_signed [静态] | 鉴别有符号类型 (公开静态成员常量)
is_exact [静态] | 鉴别准确表示的类型 (公开静态成员常量)
is_bounded [静态] | 鉴别表示有限值集合的类型 (公开静态成员常量)