C++ named requirements: BinaryTypeTrait (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A 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)
|
проверяет, являются ли два типа
layout-compatible
(шаблон класса) |
|
проверяет, является ли тип
pointer-interconvertible
(начальным) базовым типом другого типа
(шаблон класса) |
|
|
проверяет, может ли тип быть вызван (как с помощью
std::invoke
) с заданными типами аргументов
(шаблон класса) |
|
|
(C++11)
|
проверяет, поддерживает ли указанный тип uses-allocator конструкцию
(шаблон класса) |