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