Namespaces
Variants

C++ named requirements: BinaryTypeTrait (since C++11)

From cppreference.net
C++ named requirements

A BinaryTypeTrait — это шаблон класса, который описывает отношение между двумя своими параметрами шаблонного типа с помощью специализации std::integral_constant (обычно std::bool_constant ).

Требования

  • DefaultConstructible и CopyConstructible .
  • Принимает два параметра шаблонного типа (дополнительные параметры шаблона являются необязательными и допускаются).
  • Публично и однозначно наследуется от специализации std::integral_constant , известной как его базовая характеристика .
  • Имена членов базовой характеристики не скрыты и доступны однозначно.

Стандартная библиотека

Следующие шаблоны классов стандартной библиотеки удовлетворяют требованиям BinaryTypeTrait :

(C++11)
проверяет, являются ли два типа одинаковыми
(шаблон класса)
(C++11)
проверяет, является ли тип базовым для другого типа
(шаблон класса)
проверяет, является ли тип виртуальным базовым для другого типа
(шаблон класса)
проверяет, может ли тип быть преобразован в другой тип
(шаблон класса)
проверяет, являются ли два типа layout-compatible
(шаблон класса)
проверяет, является ли тип pointer-interconvertible (начальным) базовым типом другого типа
(шаблон класса)
проверяет, может ли тип быть вызван (как с помощью std::invoke ) с заданными типами аргументов
(шаблон класса)
проверяет, поддерживает ли указанный тип uses-allocator конструкцию
(шаблон класса)