Требования к именованным типам C++: BinaryTypeTrait (с C++11)
Класс-шаблон BinaryTypeTrait описывает отношения между двумя параметрами шаблона типов с помощью std::integral_constant (обычно std::bool_constant) специализации.
Требования
- DefaultConstructible и CopyConstructible.
- Принимает два параметра шаблона типов (дополнительные параметры шаблона необязательны и разрешены).
- Явно и публично наследуется от специализации
std::integral_constant, известной как его основная характеристика. - Имена членов основной характеристики не скрыты и доступны однозначно.
Стандартная библиотека
Следующие классы-шаблоны стандартной библиотеки удовлетворяют требованиям BinaryTypeTrait:
|
(C++11) | проверяет, совпадают ли два типа (класс-шаблон) |
|
(C++11) | проверяет, является ли один тип производным от другого типа (класс-шаблон) |
|
(C++11)(C++20) | проверяет, можно ли преобразовать один тип в другой тип (класс-шаблон) |
|
(C++20) | проверяет, являются ли два типа совместимыми по структуре (класс-шаблон) |
|
(C++20) | проверяет, является ли тип указатель-совместимым (начальным) базовым типом другого типа (класс-шаблон) |
|
(C++17) | проверяет, можно ли вызвать тип (как будто с помощью std::invoke) с заданными типами аргументов (класс-шаблон) |
|
(C++11) | проверяет, поддерживает ли указанный тип построение с использованием аллокатора (класс-шаблон) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/BinaryTypeTrait