std::is_enum — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
|
|
(начиная с C++11) | |
std::is_enum является UnaryTypeTrait.
Проверяет, является ли T типом перечисления. Предоставляет константу элемент value, которая равна true, если T является типом перечисления. Иначе value равна false.
Поведение программы, добавляющей специализации для std::is_enum или std::is_enum_v (начиная с C++17) не определено.
Параметры шаблона
Шаблон вспомогательной переменной
<tbody> </tbody>
|
|
(начиная с 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() {}