C++ именованные требования: UnaryTypeTrait (с C++11)
A UnaryTypeTrait — это шаблон класса, описывающий свойство его параметра шаблона типа с std::integral_constant (обычно std::bool_constant) специализацией.
Требования
- DefaultConstructible и CopyConstructible.
- Принимает один параметр шаблона типа (дополнительные параметры шаблона являются необязательными и разрешенными).
- Открыто и однозначно наследуется от специализации
std::integral_constant, известной как его базовая характеристика. - Имена членов базовой характеристики не скрываются и доступны однозначно.
Стандартная библиотека
Следующие признаки типов все удовлетворяют UnaryTypeTrait:
- Основные категории типов
- Составные категории типов
- Свойства типов
- Поддерживаемые операции
- Запросы свойств
Следующие шаблоны классов стандартной библиотеки также удовлетворяют UnaryTypeTrait.
|
(C++11)
|
константа времени компиляции заданного типа со значением (шаблон класса) |
|
(C++17)
|
метафункция логического НЕ (шаблон класса) |
|
(C++11)
|
получает размер tuple во время компиляции (специализация шаблона класса) |
|
(C++11)
|
получает размер array (специализация шаблона класса) |
|
(C++11)
|
получает размер pair (специализация шаблона класса) |
|
(C++17)
|
получает размер списка альтернатив варианта во время компиляции (шаблон класса) (шаблон переменной) |
|
(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/w/cpp/named_req/UnaryTypeTrait