C++ named requirements: BinaryTypeTrait

From cppreference.com
< cpp‎ | named req
C++ named requirements

A BinaryTypeTrait is a class template that describes a relationship between its two template type parameters with a intergral_constant (typically bool_constant) specialization.


  • DefaultConstructible and CopyConstructible
  • Takes two template type parameters (additional template parameters are optional and allowed)
  • Publicly and unambiguously derived from a specialization of intergral_constant, known as its base characteristic
  • The member names of the base characteristic are not hidden and are unambiguously available

Standard library

The following standard library class templates satisfy BinaryTypeTrait.

checks if two types are the same
(class template)
checks if a type is derived from the other type
(class template)
checks if a type can be converted to the other type
(class template)
checks if a type can be invoked (as if by std::invoke) with the given argument types
(class template)
checks if the specified type supports uses-allocator construction
(class template)