Spec-Zone.ru › C++

std::numeric_limits<T>::is_integer

static const bool is_integer;
(до C++11)
static constexpr bool is_integer;
(начиная с C++11)

Значение std::numeric_limits<T>::is_integer равно true для всех целочисленных арифметических типов T и false в остальных случаях. Эта константа имеет смысл для всех специализаций.

Стандартные специализации

T значение std::numeric_limits<T>::is_integer
/* 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 false
double false
longdouble false

Пример

#include <cstddef>
#include <cstdint>
#include <limits>

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<int*>::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
);

int main() {}

См. также

integral
(C++20)
указывает, что тип является целочисленным типом
(концепт)
is_integral
(C++11)
проверяет, является ли тип целочисленным типом
(шаблон класса)
is_integral_type
(C++26)
проверяет, является ли отражённый тип целочисленным типом
(функция)
is_signed
[static]
определяет типы со знаком
(общедоступная статическая константа-член)
is_exact
[static]
определяет точные типы
(общедоступная статическая константа-член)
is_bounded
[static]
определяет типы, представляющие конечное множество значений
(общедоступная статическая константа-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/types/numeric_limits/is_integer

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API