enumflags.h File Reference

Classes

struct   EnumWrapper< ENUMCLASS >

Namespaces

  details

Macros

#define  PRIVATE_MAXON_ENUM_TYPE0 (FRIEND, DECL, EXTRA, E, id)
#define  PRIVATE_MAXON_ENUM_DATATYPE (FRIEND, DECL, E, N, id)
#define  PRIVATE_MAXON_ENUM_TYPE1 (FRIEND, DECL, EXTRA, E, id)
#define  PRIVATE_MAXON_ENUM_TYPE2 (FRIEND, DECL, EXTRA, E, id)
#define  MAXON_DATATYPE_EARLY_ENUM (E, id)
#define  PRIVATE_MAXON_ENUM_TYPE_C (nonempty, FRIEND, DECL, EXTRA, E, id)
#define  PRIVATE_MAXON_ENUM_TYPE_B (nonempty, FRIEND, DECL, EXTRA, E, id)
#define  PRIVATE_MAXON_ENUM_TYPE_A (nonempty, FRIEND, DECL, EXTRA, E, id)
#define  PRIVATE_MAXON_ENUM_TYPE (FRIEND, DECL, EXTRA, E, ...)
#define  MAXON_ENUM_ORDERED_LIST (E, ...)
#define  MAXON_ENUM_ORDERED_LIST_CLASS (E, ...)
#define  PRIVATE_MAXON_ENUM_UNORDERED_LIST (FRIEND, E)
#define  MAXON_ENUM_LIST (E, ...)
#define  MAXON_ENUM_LIST_CLASS (E, ...)
#define  PRIVATE_MAXON_ENUM_FLAGS (FRIEND, E)
#define  MAXON_ENUM_FLAGS (E, ...)
#define  MAXON_ENUM_ORDERED_FLAGS (E, ...)
#define  MAXON_ENUM_FLAGS_CLASS (E, ...)
#define  MAXON_ENUM_ORDERED_FLAGS_CLASS (E, ...)

Typedefs

template<typename T >
using  UnderlyingType = typename std::conditional< STD_IS_REPLACEMENT (enum, T), typename std::underlying_type< typename std::conditional< STD_IS_REPLACEMENT (enum, T), T, ENUM_DONT_INITIALIZE >::type >::type, T >::type

函数

template<typename E >
constexpr E  ConditionalFlag ( Bool condition, E value)
template<typename E >
Bool   IsAllSet (E flags, E mask)

Macro Definition Documentation

◆  PRIVATE_MAXON_ENUM_TYPE0

#define PRIVATE_MAXON_ENUM_TYPE0 (   FRIEND,
  DECL,
  EXTRA,
  E,
  id 
)

◆  PRIVATE_MAXON_ENUM_DATATYPE

#define PRIVATE_MAXON_ENUM_DATATYPE (   FRIEND,
  DECL,
  E,
  N,
  id 
)

◆  PRIVATE_MAXON_ENUM_TYPE1

#define PRIVATE_MAXON_ENUM_TYPE1 (   FRIEND,
  DECL,
  EXTRA,
  E,
  id 
)

◆  PRIVATE_MAXON_ENUM_TYPE2

#define PRIVATE_MAXON_ENUM_TYPE2 (   FRIEND,
  DECL,
  EXTRA,
  E,
  id 
)

◆  MAXON_DATATYPE_EARLY_ENUM

#define MAXON_DATATYPE_EARLY_ENUM (   E,
  id 
)

◆  PRIVATE_MAXON_ENUM_TYPE_C

#define PRIVATE_MAXON_ENUM_TYPE_C (   nonempty,
  FRIEND,
  DECL,
  EXTRA,
  E,
  id 
)

◆  PRIVATE_MAXON_ENUM_TYPE_B

#define PRIVATE_MAXON_ENUM_TYPE_B (   nonempty,
  FRIEND,
  DECL,
  EXTRA,
  E,
  id 
)

◆  PRIVATE_MAXON_ENUM_TYPE_A

#define PRIVATE_MAXON_ENUM_TYPE_A (   nonempty,
  FRIEND,
  DECL,
  EXTRA,
  E,
  id 
)

◆  PRIVATE_MAXON_ENUM_TYPE

#define PRIVATE_MAXON_ENUM_TYPE (   FRIEND,
  DECL,
  EXTRA,
  E,
  ...  
)

◆  MAXON_ENUM_ORDERED_LIST

#define MAXON_ENUM_ORDERED_LIST (   E,
  ...  
)

◆  MAXON_ENUM_ORDERED_LIST_CLASS

#define MAXON_ENUM_ORDERED_LIST_CLASS (   E,
  ...  
)

◆  PRIVATE_MAXON_ENUM_UNORDERED_LIST

#define PRIVATE_MAXON_ENUM_UNORDERED_LIST (   FRIEND,
 
)

◆  MAXON_ENUM_LIST

#define MAXON_ENUM_LIST (   E,
  ...  
)

◆  MAXON_ENUM_LIST_CLASS

#define MAXON_ENUM_LIST_CLASS (   E,
  ...  
)

◆  PRIVATE_MAXON_ENUM_FLAGS

#define PRIVATE_MAXON_ENUM_FLAGS (   FRIEND,
 
)

◆  MAXON_ENUM_FLAGS

#define MAXON_ENUM_FLAGS (   E,
  ...  
)

◆  MAXON_ENUM_ORDERED_FLAGS

#define MAXON_ENUM_ORDERED_FLAGS (   E,
  ...  
)

◆  MAXON_ENUM_FLAGS_CLASS

#define MAXON_ENUM_FLAGS_CLASS (   E,
  ...  
)

◆  MAXON_ENUM_ORDERED_FLAGS_CLASS

#define MAXON_ENUM_ORDERED_FLAGS_CLASS (   E,
  ...  
)

Typedef Documentation

◆  UnderlyingType

using UnderlyingType = typename std::conditional< STD_IS_REPLACEMENT (enum, T), typename std::underlying_type<typename std::conditional< STD_IS_REPLACEMENT (enum, T), T, ENUM_DONT_INITIALIZE>::type>::type, T>::type

A type alias for the underlying type of T if T is an enumeration type, or T itself.

Function Documentation

◆  ConditionalFlag()

constexpr E ConditionalFlag ( Bool   condition ,
value  
)
constexpr

◆  IsAllSet()

Bool IsAllSet ( flags ,
mask  
)