IsSpecialization

Type trait to check if a type is a specialization of a given template.

Defined in Rodin/Utility/IsSpecialization.h

template <
  class Test,
  template< class... > class Ref>
struct IsSpecialization;

Specializations

SpecializationDescription
Ref<Args...>, Ref
Full specialization
template <
  template< class... > class Ref,
  class... Args>
struct IsSpecialization<
  Ref< Args... >,
  Ref>;
Specialization for types that are specializations of the reference template.
Template parameters
Ref The reference template to check against.

The primary template handles the case where Test is not a specialization of the Ref template.

Example usage:

static_assert(IsSpecialization<std::vector<int>, std::vector>::Value == true);
static_assert(IsSpecialization<int, std::vector>::Value == false);

Public static variables

static const bool Value constexpr
False when Test is not a specialization of Ref.