C++ named requirements: UnaryTypeTrait (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UnaryTypeTrait — это шаблон класса, который описывает свойство своего параметра-типа с помощью специализации std::integral_constant (обычно std::bool_constant ).
Требования
- DefaultConstructible и CopyConstructible .
- Принимает один параметр шаблонного типа (дополнительные параметры шаблона являются необязательными и допустимы).
- Публично и однозначно наследуется от специализации std::integral_constant , известной как его базовая характеристика .
- Имена членов базовой характеристики не скрыты и однозначно доступны.
Стандартная библиотека
Следующие type traits удовлетворяют требованиям UnaryTypeTrait :
- Основные категории типов
- Составные категории типов
- Свойства типов
- Поддерживаемые операции
- Запросы свойств
Следующие шаблоны классов стандартной библиотеки также удовлетворяют требованиям UnaryTypeTrait .
|
(C++11)
|
константа времени компиляции указанного типа с указанным значением
(шаблон класса) |
|
(C++17)
|
метафункция логического НЕ
(шаблон класса) |
|
(C++11)
|
получает размер
|
|
(C++11)
|
получает размер
array
(специализация шаблона класса) |
|
(C++11)
|
получает размер
pair
(специализация шаблона класса) |
|
(C++17)
|
получает размер списка альтернатив
variant
во время компиляции
(шаблон класса) (шаблон переменной) |
|
(C++11)
|
указывает, что объект является выражением
std::bind
или может быть использован как таковой
(шаблон класса) |
|
(C++11)
|
указывает, что объект является стандартным заполнителем или может быть использован как таковой
(шаблон класса) |
|
(C++17)
|
проверяет, представляет ли класс политику выполнения
(шаблон класса) |