Именованные требования C++: UnaryTypeTrait (начиная с C++11)
UnaryTypeTrait — это шаблон класса, описывающий свойство параметра типа шаблона с помощью специализации std::integral_constant (обычно std::bool_constant).
Требования
- DefaultConstructible и CopyConstructible.
- Принимает один параметр типа шаблона (дополнительные параметры шаблона необязательны и допускаются).
- Публично и однозначно наследуется от специализации
std::integral_constant, называемой его базовой характеристикой. - Имена членов базовой характеристики не скрыты и доступны однозначно.
Стандартная библиотека
Все следующие характеристики типов удовлетворяют требованиям 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) | проверяет, представляет ли класс политику выполнения (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/UnaryTypeTrait