8#ifndef INCLUDED_BSLMF_ISENUM
9#define INCLUDED_BSLMF_ISENUM
113#include <bslscm_version.h>
127#if defined(BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER)
128# include <type_traits>
131#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
135#if defined(BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER)
136# define BSLS_ISENUM_USE_NATIVE_TRAIT 1
150template <
class t_TYPE>
172template <
class t_TYPE>
183#if defined(BSLS_ISENUM_USE_NATIVE_TRAIT)
193template <
class t_TYPE>
197#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
200template <
class t_TYPE>
246template <
class COMPLETE_TYPE>
249 bsl::is_convertible<COMPLETE_TYPE, IsEnum_AnyArithmeticType>::value
250 && !IsConvertibleToAny<COMPLETE_TYPE>::value>::type {
265template <
class t_TYPE>
267:
conditional<!is_fundamental<t_TYPE>::value && !is_reference<t_TYPE>::value &&
268 !is_class<t_TYPE>::value,
269 BloombergLP::bslmf::IsEnum_TestConversions<t_TYPE>,
277template <
class t_TYPE>
292template <
class t_TYPE>
294:
is_enum<typename bsl::remove_cv<t_TYPE>::type>::type {
297template <
class t_TYPE>
299:
is_enum<typename bsl::remove_cv<t_TYPE>::type>::type {
302template <
class t_TYPE>
304:
is_enum<typename bsl::remove_cv<t_TYPE>::type>::type {
311#ifndef BDE_OPENSOURCE_PUBLICATION
320#define bslmf_IsEnum bslmf::IsEnum
static const t_TYPE value
Definition bslmf_integralconstant.h:258
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_INLINE_VARIABLE
Definition bsls_keyword.h:623
Definition bdlb_printmethods.h:283
Definition bdlbb_blob.h:576
Definition bslmf_conditional.h:120
Definition bslmf_integralconstant.h:244
Definition bslmf_isenum.h:270
Definition bslmf_isenum.h:222
IsEnum_AnyArithmeticType(unsigned long)
IsEnum_AnyArithmeticType(long double)
IsEnum_AnyArithmeticType(unsigned int)
IsEnum_AnyArithmeticType(int)
IsEnum_AnyArithmeticType(unsigned long long)
IsEnum_AnyArithmeticType(long long)
IsEnum_AnyArithmeticType(long)
IsEnum_AnyArithmeticType(double)
IsEnum_AnyArithmeticType(wchar_t)
Definition bslmf_isenum.h:250
Definition bslmf_isenum.h:173