◐ Shell
clean mode source ↗

std::is_enum — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

template< class T > struct is_enum;

(начиная с C++11)

std::is_enum является UnaryTypeTrait.

Проверяет, является ли T типом перечисления. Предоставляет константу элемент value, которая равна true, если T является типом перечисления. Иначе value равна false.

Поведение программы, добавляющей специализации для std::is_enum или std::is_enum_v (начиная с C++17) не определено.

Параметры шаблона

Шаблон вспомогательной переменной

<tbody> </tbody>

template< class T > inline constexpr bool is_enum_v = is_enum<T>::value;

(начиная с C++17)

Унаследован от std::integral_constant

Константы элементы

true, если T тип перечисления, false иначе
(public static константа-элемент)

Функции-элементы

преобразует объект в bool, возвращает value
(public функция-элемент)
возвращает value
(public функция-элемент)

Типы элементы

Тип Определение
value_type bool
type std::integral_constant<bool, value>

Пример

#include <type_traits>

struct A { enum E {}; };
static_assert(std::is_enum_v<A> == false);
static_assert(std::is_enum_v<A::E> == true);

enum E {};
static_assert(std::is_enum_v<E> == true);

enum class Ec : int {};
static_assert(std::is_enum_v<Ec> == true);

static_assert(std::is_enum_v<int> == false);

int main() {}

Смотрите также