1#if __cplusplus >= 201103L
9#if __cplusplus >= 201103L
10enum class A :
unsigned char {
X = 1,
Y = 2,
Z = 4 };
11enum class B :
unsigned short {
X = 1,
Y = 2,
Z = 4 };
12enum class C :
unsigned {
X = 1,
Y = 2,
Z = 4 };
13enum class D :
unsigned long {
X = 1,
Y = 2,
Z = 4 };
17#if __cplusplus >= 201103L
18 template<
typename Enum >
27 assert( Enum::X | Enum::Y );
32 assert( !( Enum::X & Enum::Y ) );
34 assert( Enum::X | Enum::Y | Enum::Z );
35 assert( !( Enum::X & Enum::Y & Enum::Z ) );
36 assert( ( Enum::X | Enum::Y | Enum::Z ) & Enum::X );
40#if __cplusplus >= 201103L
Definition strongenumflags.test.h:16
void enum_ulong()
Definition strongenumflags.test.h:59
void enum_uint()
Definition strongenumflags.test.h:58
void enum_ushort()
Definition strongenumflags.test.h:57
void regression()
Definition strongenumflags.test.h:55
void enum_uchar()
Definition strongenumflags.test.h:56
#define assert(x)
Definition test.h:30