BloombergLP::bdlat_EnumFunctions::IsEnumeration

Meta-function that detects whether TYPE exposes enumeration behavior.

Synopsis

Declared in <bdlat_enumfunctions.h>

template<class TYPE>
struct IsEnumeration
    : bsl::integral_constant<bool, bslalg::HasTrait<TYPE, bdlat_TypeTraitBasicEnumeration>::value>

Description

This struct should be specialized for third-party types that need to expose "enumeration" behavior. See the component-level documentation for further information.

Base Classes

NameDescription
bsl::integral_constant<bool, bslalg::HasTrait<TYPE, bdlat_TypeTraitBasicEnumeration>::value>Metafunction representing a compile-time constant of the specified (template parameter) t_TYPE with the specified (template parameter) t_VALUE.

Type Aliases

NameDescription
type Alias for this integral_constant specialization.
value_type Alias for the (template parameter) t_TYPE.

Member Functions

NameDescription
operator() Return a copy of the template argument t_VALUE.
operator t_TYPE Return a copy of the template argument t_VALUE.

Static Data Members

NameDescription
value The compile-time constant value of this metafunction.

Specializations

NameDescription
IsEnumeration<bdlar::EnumConstRef> Trait indicating that bdlar::EnumConstRef is a bdlat enumeration type.
IsEnumeration<bdlar::EnumRef> Trait indicating that bdlar::EnumRef is a bdlat enumeration type.

Derived Classes

NameDescription
IsEnum Meta-function indicating whether the specified t_TYPE is an enumeration type.