Namespaces
Variants

C++ named requirements: UnaryTypeTrait (since C++11)

From cppreference.net
C++ named requirements

UnaryTypeTrait — это шаблон класса, который описывает свойство своего параметра-типа с помощью специализации std::integral_constant (обычно std::bool_constant ).

Требования

  • DefaultConstructible и CopyConstructible .
  • Принимает один параметр шаблонного типа (дополнительные параметры шаблона являются необязательными и допустимы).
  • Публично и однозначно наследуется от специализации std::integral_constant , известной как его базовая характеристика .
  • Имена членов базовой характеристики не скрыты и однозначно доступны.

Стандартная библиотека

Следующие type traits удовлетворяют требованиям UnaryTypeTrait :

Следующие шаблоны классов стандартной библиотеки также удовлетворяют требованиям UnaryTypeTrait .

константа времени компиляции указанного типа с указанным значением
(шаблон класса)
(C++17)
метафункция логического НЕ
(шаблон класса)
получает размер

tuple
(специализация шаблона класса)

получает размер array
(специализация шаблона класса)
получает размер pair
(специализация шаблона класса)
получает размер списка альтернатив variant во время компиляции
(шаблон класса) (шаблон переменной)
указывает, что объект является выражением std::bind или может быть использован как таковой
(шаблон класса)
указывает, что объект является стандартным заполнителем или может быть использован как таковой
(шаблон класса)
проверяет, представляет ли класс политику выполнения
(шаблон класса)