FlatImage
A configurable Linux containerization system
Loading...
Searching...
No Matches
enum.hpp File Reference

Custom enumeration class. More...

#include <cstdlib>
#include <expected>
#include <print>
Include dependency graph for enum.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VA_SIZE(...)
 
#define VA_SIZE_(...)
 
#define VA_SIZE_SEQ(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, N, ...)
 
#define VA_SIZE_RSEQ()
 
#define VA_DROP(x, ...)
 
#define ENUM_TO_STRING_EXPR(NAME, value)
 
#define ENUM_CASE_TO_STRING_0(NAME, x)
 
#define ENUM_CASE_TO_STRING_1(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_2(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_3(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_4(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_5(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_6(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_7(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_8(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_9(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_10(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_11(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_12(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_13(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_14(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_15(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_16(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_17(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_18(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_19(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_20(NAME, x, ...)
 
#define ENUM_CASE_TO_STRING_IMPL(i, NAME, ...)
 
#define ENUM_CASE_TO_STRING(i, NAME, ...)
 
#define ENUM_FROM_STRING_EXPR(NAME, value)
 
#define ENUM_CASE_FROM_STRING_0(NAME, x)
 
#define ENUM_CASE_FROM_STRING_1(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_2(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_3(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_4(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_5(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_6(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_7(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_8(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_9(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_10(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_11(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_12(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_13(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_14(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_15(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_16(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_17(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_18(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_19(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_20(NAME, x, ...)
 
#define ENUM_CASE_FROM_STRING_IMPL(i, NAME, ...)
 
#define ENUM_CASE_FROM_STRING(i, NAME, ...)
 
#define ENUM_TO_MEMBER_EXPR(NAME, value)
 
#define ENUM_TO_MEMBER_0(NAME, x)
 
#define ENUM_TO_MEMBER_1(NAME, x, ...)
 
#define ENUM_TO_MEMBER_2(NAME, x, ...)
 
#define ENUM_TO_MEMBER_3(NAME, x, ...)
 
#define ENUM_TO_MEMBER_4(NAME, x, ...)
 
#define ENUM_TO_MEMBER_5(NAME, x, ...)
 
#define ENUM_TO_MEMBER_6(NAME, x, ...)
 
#define ENUM_TO_MEMBER_7(NAME, x, ...)
 
#define ENUM_TO_MEMBER_8(NAME, x, ...)
 
#define ENUM_TO_MEMBER_9(NAME, x, ...)
 
#define ENUM_TO_MEMBER_10(NAME, x, ...)
 
#define ENUM_TO_MEMBER_11(NAME, x, ...)
 
#define ENUM_TO_MEMBER_12(NAME, x, ...)
 
#define ENUM_TO_MEMBER_13(NAME, x, ...)
 
#define ENUM_TO_MEMBER_14(NAME, x, ...)
 
#define ENUM_TO_MEMBER_15(NAME, x, ...)
 
#define ENUM_TO_MEMBER_16(NAME, x, ...)
 
#define ENUM_TO_MEMBER_17(NAME, x, ...)
 
#define ENUM_TO_MEMBER_18(NAME, x, ...)
 
#define ENUM_TO_MEMBER_19(NAME, x, ...)
 
#define ENUM_TO_MEMBER_20(NAME, x, ...)
 
#define ENUM_TO_MEMBER_IMPL(i, NAME, ...)
 
#define ENUM_TO_MEMBER(i, NAME, ...)
 
#define ENUM_STATIC_INIT_EXPR(NAME, value)
 
#define ENUM_STATIC_INIT_0(NAME, x)
 
#define ENUM_STATIC_INIT_1(NAME, x, ...)
 
#define ENUM_STATIC_INIT_2(NAME, x, ...)
 
#define ENUM_STATIC_INIT_3(NAME, x, ...)
 
#define ENUM_STATIC_INIT_4(NAME, x, ...)
 
#define ENUM_STATIC_INIT_5(NAME, x, ...)
 
#define ENUM_STATIC_INIT_6(NAME, x, ...)
 
#define ENUM_STATIC_INIT_7(NAME, x, ...)
 
#define ENUM_STATIC_INIT_8(NAME, x, ...)
 
#define ENUM_STATIC_INIT_9(NAME, x, ...)
 
#define ENUM_STATIC_INIT_10(NAME, x, ...)
 
#define ENUM_STATIC_INIT_11(NAME, x, ...)
 
#define ENUM_STATIC_INIT_12(NAME, x, ...)
 
#define ENUM_STATIC_INIT_13(NAME, x, ...)
 
#define ENUM_STATIC_INIT_14(NAME, x, ...)
 
#define ENUM_STATIC_INIT_15(NAME, x, ...)
 
#define ENUM_STATIC_INIT_16(NAME, x, ...)
 
#define ENUM_STATIC_INIT_17(NAME, x, ...)
 
#define ENUM_STATIC_INIT_18(NAME, x, ...)
 
#define ENUM_STATIC_INIT_19(NAME, x, ...)
 
#define ENUM_STATIC_INIT_20(NAME, x, ...)
 
#define ENUM_STATIC_INIT_IMPL(i, NAME, ...)
 
#define ENUM_STATIC_INIT(i, NAME, ...)
 
#define ENUM_IMPL(NAME, ...)
 
#define ENUM(NAME, ...)
 

Detailed Description

Custom enumeration class.

Author
Ruan Formigoni

Definition in file enum.hpp.

Macro Definition Documentation

◆ ENUM

#define ENUM ( NAME,
... )
Value:
ENUM_IMPL(NAME, __VA_ARGS__, NONE)

Definition at line 201 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING

#define ENUM_CASE_FROM_STRING ( i,
NAME,
... )
Value:
ENUM_CASE_FROM_STRING_IMPL(i,NAME,__VA_ARGS__)

Definition at line 87 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_0

#define ENUM_CASE_FROM_STRING_0 ( NAME,
x )
Value:
ENUM_FROM_STRING_EXPR(NAME,x)

Definition at line 65 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_1

#define ENUM_CASE_FROM_STRING_1 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_0(NAME,__VA_ARGS__)

Definition at line 66 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_10

#define ENUM_CASE_FROM_STRING_10 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_9(NAME,__VA_ARGS__)

Definition at line 75 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_11

#define ENUM_CASE_FROM_STRING_11 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_10(NAME,__VA_ARGS__)

Definition at line 76 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_12

#define ENUM_CASE_FROM_STRING_12 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_11(NAME,__VA_ARGS__)

Definition at line 77 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_13

#define ENUM_CASE_FROM_STRING_13 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_12(NAME,__VA_ARGS__)

Definition at line 78 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_14

#define ENUM_CASE_FROM_STRING_14 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_13(NAME,__VA_ARGS__)

Definition at line 79 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_15

#define ENUM_CASE_FROM_STRING_15 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_14(NAME,__VA_ARGS__)

Definition at line 80 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_16

#define ENUM_CASE_FROM_STRING_16 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_15(NAME,__VA_ARGS__)

Definition at line 81 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_17

#define ENUM_CASE_FROM_STRING_17 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_16(NAME,__VA_ARGS__)

Definition at line 82 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_18

#define ENUM_CASE_FROM_STRING_18 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_17(NAME,__VA_ARGS__)

Definition at line 83 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_19

#define ENUM_CASE_FROM_STRING_19 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_18(NAME,__VA_ARGS__)

Definition at line 84 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_2

#define ENUM_CASE_FROM_STRING_2 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_1(NAME,__VA_ARGS__)

Definition at line 67 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_20

#define ENUM_CASE_FROM_STRING_20 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_19(NAME,__VA_ARGS__)

Definition at line 85 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_3

#define ENUM_CASE_FROM_STRING_3 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_2(NAME,__VA_ARGS__)

Definition at line 68 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_4

#define ENUM_CASE_FROM_STRING_4 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_3(NAME,__VA_ARGS__)

Definition at line 69 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_5

#define ENUM_CASE_FROM_STRING_5 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_4(NAME,__VA_ARGS__)

Definition at line 70 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_6

#define ENUM_CASE_FROM_STRING_6 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_5(NAME,__VA_ARGS__)

Definition at line 71 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_7

#define ENUM_CASE_FROM_STRING_7 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_6(NAME,__VA_ARGS__)

Definition at line 72 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_8

#define ENUM_CASE_FROM_STRING_8 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_7(NAME,__VA_ARGS__)

Definition at line 73 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_9

#define ENUM_CASE_FROM_STRING_9 ( NAME,
x,
... )
Value:
ENUM_FROM_STRING_EXPR(NAME,x) ENUM_CASE_FROM_STRING_8(NAME,__VA_ARGS__)

Definition at line 74 of file enum.hpp.

◆ ENUM_CASE_FROM_STRING_IMPL

#define ENUM_CASE_FROM_STRING_IMPL ( i,
NAME,
... )
Value:
ENUM_CASE_FROM_STRING_##i(NAME,__VA_ARGS__)

Definition at line 86 of file enum.hpp.

◆ ENUM_CASE_TO_STRING

#define ENUM_CASE_TO_STRING ( i,
NAME,
... )
Value:
ENUM_CASE_TO_STRING_IMPL(i,NAME,__VA_ARGS__)

Definition at line 61 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_0

#define ENUM_CASE_TO_STRING_0 ( NAME,
x )
Value:
ENUM_TO_STRING_EXPR(NAME,x)

Definition at line 39 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_1

#define ENUM_CASE_TO_STRING_1 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_0(NAME,__VA_ARGS__)

Definition at line 40 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_10

#define ENUM_CASE_TO_STRING_10 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_9(NAME,__VA_ARGS__)

Definition at line 49 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_11

#define ENUM_CASE_TO_STRING_11 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_10(NAME,__VA_ARGS__)

Definition at line 50 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_12

#define ENUM_CASE_TO_STRING_12 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_11(NAME,__VA_ARGS__)

Definition at line 51 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_13

#define ENUM_CASE_TO_STRING_13 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_12(NAME,__VA_ARGS__)

Definition at line 52 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_14

#define ENUM_CASE_TO_STRING_14 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_13(NAME,__VA_ARGS__)

Definition at line 53 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_15

#define ENUM_CASE_TO_STRING_15 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_14(NAME,__VA_ARGS__)

Definition at line 54 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_16

#define ENUM_CASE_TO_STRING_16 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_15(NAME,__VA_ARGS__)

Definition at line 55 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_17

#define ENUM_CASE_TO_STRING_17 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_16(NAME,__VA_ARGS__)

Definition at line 56 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_18

#define ENUM_CASE_TO_STRING_18 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_17(NAME,__VA_ARGS__)

Definition at line 57 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_19

#define ENUM_CASE_TO_STRING_19 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_18(NAME,__VA_ARGS__)

Definition at line 58 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_2

#define ENUM_CASE_TO_STRING_2 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_1(NAME,__VA_ARGS__)

Definition at line 41 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_20

#define ENUM_CASE_TO_STRING_20 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_19(NAME,__VA_ARGS__)

Definition at line 59 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_3

#define ENUM_CASE_TO_STRING_3 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_2(NAME,__VA_ARGS__)

Definition at line 42 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_4

#define ENUM_CASE_TO_STRING_4 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_3(NAME,__VA_ARGS__)

Definition at line 43 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_5

#define ENUM_CASE_TO_STRING_5 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_4(NAME,__VA_ARGS__)

Definition at line 44 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_6

#define ENUM_CASE_TO_STRING_6 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_5(NAME,__VA_ARGS__)

Definition at line 45 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_7

#define ENUM_CASE_TO_STRING_7 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_6(NAME,__VA_ARGS__)

Definition at line 46 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_8

#define ENUM_CASE_TO_STRING_8 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_7(NAME,__VA_ARGS__)

Definition at line 47 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_9

#define ENUM_CASE_TO_STRING_9 ( NAME,
x,
... )
Value:
ENUM_TO_STRING_EXPR(NAME,x) ENUM_CASE_TO_STRING_8(NAME,__VA_ARGS__)

Definition at line 48 of file enum.hpp.

◆ ENUM_CASE_TO_STRING_IMPL

#define ENUM_CASE_TO_STRING_IMPL ( i,
NAME,
... )
Value:
ENUM_CASE_TO_STRING_##i(NAME,__VA_ARGS__)

Definition at line 60 of file enum.hpp.

◆ ENUM_FROM_STRING_EXPR

#define ENUM_FROM_STRING_EXPR ( NAME,
value )
Value:
if ( str_enum == #value ) { return NAME(value); }

Definition at line 64 of file enum.hpp.

◆ ENUM_IMPL

#define ENUM_IMPL ( NAME,
... )

Definition at line 141 of file enum.hpp.

◆ ENUM_STATIC_INIT

#define ENUM_STATIC_INIT ( i,
NAME,
... )
Value:
ENUM_STATIC_INIT_IMPL(i, NAME, __VA_ARGS__)

Definition at line 139 of file enum.hpp.

◆ ENUM_STATIC_INIT_0

#define ENUM_STATIC_INIT_0 ( NAME,
x )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x)

Definition at line 117 of file enum.hpp.

◆ ENUM_STATIC_INIT_1

#define ENUM_STATIC_INIT_1 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_0(NAME,__VA_ARGS__)

Definition at line 118 of file enum.hpp.

◆ ENUM_STATIC_INIT_10

#define ENUM_STATIC_INIT_10 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_9(NAME,__VA_ARGS__)

Definition at line 127 of file enum.hpp.

◆ ENUM_STATIC_INIT_11

#define ENUM_STATIC_INIT_11 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_10(NAME,__VA_ARGS__)

Definition at line 128 of file enum.hpp.

◆ ENUM_STATIC_INIT_12

#define ENUM_STATIC_INIT_12 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_11(NAME,__VA_ARGS__)

Definition at line 129 of file enum.hpp.

◆ ENUM_STATIC_INIT_13

#define ENUM_STATIC_INIT_13 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_12(NAME,__VA_ARGS__)

Definition at line 130 of file enum.hpp.

◆ ENUM_STATIC_INIT_14

#define ENUM_STATIC_INIT_14 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_13(NAME,__VA_ARGS__)

Definition at line 131 of file enum.hpp.

◆ ENUM_STATIC_INIT_15

#define ENUM_STATIC_INIT_15 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_14(NAME,__VA_ARGS__)

Definition at line 132 of file enum.hpp.

◆ ENUM_STATIC_INIT_16

#define ENUM_STATIC_INIT_16 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_15(NAME,__VA_ARGS__)

Definition at line 133 of file enum.hpp.

◆ ENUM_STATIC_INIT_17

#define ENUM_STATIC_INIT_17 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_16(NAME,__VA_ARGS__)

Definition at line 134 of file enum.hpp.

◆ ENUM_STATIC_INIT_18

#define ENUM_STATIC_INIT_18 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_17(NAME,__VA_ARGS__)

Definition at line 135 of file enum.hpp.

◆ ENUM_STATIC_INIT_19

#define ENUM_STATIC_INIT_19 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_18(NAME,__VA_ARGS__)

Definition at line 136 of file enum.hpp.

◆ ENUM_STATIC_INIT_2

#define ENUM_STATIC_INIT_2 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_1(NAME,__VA_ARGS__)

Definition at line 119 of file enum.hpp.

◆ ENUM_STATIC_INIT_20

#define ENUM_STATIC_INIT_20 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_19(NAME,__VA_ARGS__)

Definition at line 137 of file enum.hpp.

◆ ENUM_STATIC_INIT_3

#define ENUM_STATIC_INIT_3 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_2(NAME,__VA_ARGS__)

Definition at line 120 of file enum.hpp.

◆ ENUM_STATIC_INIT_4

#define ENUM_STATIC_INIT_4 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_3(NAME,__VA_ARGS__)

Definition at line 121 of file enum.hpp.

◆ ENUM_STATIC_INIT_5

#define ENUM_STATIC_INIT_5 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_4(NAME,__VA_ARGS__)

Definition at line 122 of file enum.hpp.

◆ ENUM_STATIC_INIT_6

#define ENUM_STATIC_INIT_6 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_5(NAME,__VA_ARGS__)

Definition at line 123 of file enum.hpp.

◆ ENUM_STATIC_INIT_7

#define ENUM_STATIC_INIT_7 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_6(NAME,__VA_ARGS__)

Definition at line 124 of file enum.hpp.

◆ ENUM_STATIC_INIT_8

#define ENUM_STATIC_INIT_8 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_7(NAME,__VA_ARGS__)

Definition at line 125 of file enum.hpp.

◆ ENUM_STATIC_INIT_9

#define ENUM_STATIC_INIT_9 ( NAME,
x,
... )
Value:
ENUM_STATIC_INIT_EXPR(NAME,x) ENUM_STATIC_INIT_8(NAME,__VA_ARGS__)

Definition at line 126 of file enum.hpp.

◆ ENUM_STATIC_INIT_EXPR

#define ENUM_STATIC_INIT_EXPR ( NAME,
value )
Value:
inline NAME::enum_t const NAME::value = NAME::enum_t::value;

Definition at line 116 of file enum.hpp.

◆ ENUM_STATIC_INIT_IMPL

#define ENUM_STATIC_INIT_IMPL ( i,
NAME,
... )
Value:
ENUM_STATIC_INIT_##i(NAME,__VA_ARGS__)

Definition at line 138 of file enum.hpp.

◆ ENUM_TO_MEMBER

#define ENUM_TO_MEMBER ( i,
NAME,
... )
Value:
ENUM_TO_MEMBER_IMPL(i, NAME, __VA_ARGS__)

Definition at line 113 of file enum.hpp.

◆ ENUM_TO_MEMBER_0

#define ENUM_TO_MEMBER_0 ( NAME,
x )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x)

Definition at line 91 of file enum.hpp.

◆ ENUM_TO_MEMBER_1

#define ENUM_TO_MEMBER_1 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_0(NAME,__VA_ARGS__)

Definition at line 92 of file enum.hpp.

◆ ENUM_TO_MEMBER_10

#define ENUM_TO_MEMBER_10 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_9(NAME,__VA_ARGS__)

Definition at line 101 of file enum.hpp.

◆ ENUM_TO_MEMBER_11

#define ENUM_TO_MEMBER_11 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_10(NAME,__VA_ARGS__)

Definition at line 102 of file enum.hpp.

◆ ENUM_TO_MEMBER_12

#define ENUM_TO_MEMBER_12 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_11(NAME,__VA_ARGS__)

Definition at line 103 of file enum.hpp.

◆ ENUM_TO_MEMBER_13

#define ENUM_TO_MEMBER_13 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_12(NAME,__VA_ARGS__)

Definition at line 104 of file enum.hpp.

◆ ENUM_TO_MEMBER_14

#define ENUM_TO_MEMBER_14 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_13(NAME,__VA_ARGS__)

Definition at line 105 of file enum.hpp.

◆ ENUM_TO_MEMBER_15

#define ENUM_TO_MEMBER_15 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_14(NAME,__VA_ARGS__)

Definition at line 106 of file enum.hpp.

◆ ENUM_TO_MEMBER_16

#define ENUM_TO_MEMBER_16 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_15(NAME,__VA_ARGS__)

Definition at line 107 of file enum.hpp.

◆ ENUM_TO_MEMBER_17

#define ENUM_TO_MEMBER_17 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_16(NAME,__VA_ARGS__)

Definition at line 108 of file enum.hpp.

◆ ENUM_TO_MEMBER_18

#define ENUM_TO_MEMBER_18 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_17(NAME,__VA_ARGS__)

Definition at line 109 of file enum.hpp.

◆ ENUM_TO_MEMBER_19

#define ENUM_TO_MEMBER_19 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_18(NAME,__VA_ARGS__)

Definition at line 110 of file enum.hpp.

◆ ENUM_TO_MEMBER_2

#define ENUM_TO_MEMBER_2 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_1(NAME,__VA_ARGS__)

Definition at line 93 of file enum.hpp.

◆ ENUM_TO_MEMBER_20

#define ENUM_TO_MEMBER_20 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_19(NAME,__VA_ARGS__)

Definition at line 111 of file enum.hpp.

◆ ENUM_TO_MEMBER_3

#define ENUM_TO_MEMBER_3 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_2(NAME,__VA_ARGS__)

Definition at line 94 of file enum.hpp.

◆ ENUM_TO_MEMBER_4

#define ENUM_TO_MEMBER_4 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_3(NAME,__VA_ARGS__)

Definition at line 95 of file enum.hpp.

◆ ENUM_TO_MEMBER_5

#define ENUM_TO_MEMBER_5 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_4(NAME,__VA_ARGS__)

Definition at line 96 of file enum.hpp.

◆ ENUM_TO_MEMBER_6

#define ENUM_TO_MEMBER_6 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_5(NAME,__VA_ARGS__)

Definition at line 97 of file enum.hpp.

◆ ENUM_TO_MEMBER_7

#define ENUM_TO_MEMBER_7 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_6(NAME,__VA_ARGS__)

Definition at line 98 of file enum.hpp.

◆ ENUM_TO_MEMBER_8

#define ENUM_TO_MEMBER_8 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_7(NAME,__VA_ARGS__)

Definition at line 99 of file enum.hpp.

◆ ENUM_TO_MEMBER_9

#define ENUM_TO_MEMBER_9 ( NAME,
x,
... )
Value:
ENUM_TO_MEMBER_EXPR(NAME,x) ENUM_TO_MEMBER_8(NAME,__VA_ARGS__)

Definition at line 100 of file enum.hpp.

◆ ENUM_TO_MEMBER_EXPR

#define ENUM_TO_MEMBER_EXPR ( NAME,
value )
Value:
static enum_t const value;

Definition at line 90 of file enum.hpp.

◆ ENUM_TO_MEMBER_IMPL

#define ENUM_TO_MEMBER_IMPL ( i,
NAME,
... )
Value:
ENUM_TO_MEMBER_##i(NAME,__VA_ARGS__)

Definition at line 112 of file enum.hpp.

◆ ENUM_TO_STRING_EXPR

#define ENUM_TO_STRING_EXPR ( NAME,
value )
Value:
case enum_t::value: return #value;

Definition at line 38 of file enum.hpp.

◆ VA_DROP

#define VA_DROP ( x,
... )
Value:
__VA_ARGS__

Definition at line 35 of file enum.hpp.

◆ VA_SIZE

#define VA_SIZE ( ...)
Value:
VA_SIZE_(__VA_ARGS__,VA_SIZE_RSEQ())

Definition at line 15 of file enum.hpp.

◆ VA_SIZE_

#define VA_SIZE_ ( ...)
Value:
VA_SIZE_SEQ(__VA_ARGS__)

Definition at line 16 of file enum.hpp.

◆ VA_SIZE_RSEQ

#define VA_SIZE_RSEQ ( )
Value:
63,62,61,60, \
59,58,57,56,55,54,53,52,51,50, \
49,48,47,46,45,44,43,42,41,40, \
39,38,37,36,35,34,33,32,31,30, \
29,28,27,26,25,24,23,22,21,20, \
19,18,17,16,15,14,13,12,11,10, \
9,8,7,6,5,4,3,2,1,0

Definition at line 25 of file enum.hpp.

◆ VA_SIZE_SEQ

#define VA_SIZE_SEQ ( _1,
_2,
_3,
_4,
_5,
_6,
_7,
_8,
_9,
_10,
_11,
_12,
_13,
_14,
_15,
_16,
_17,
_18,
_19,
_20,
_21,
_22,
_23,
_24,
_25,
_26,
_27,
_28,
_29,
_30,
_31,
_32,
_33,
_34,
_35,
_36,
_37,
_38,
_39,
_40,
_41,
_42,
_43,
_44,
_45,
_46,
_47,
_48,
_49,
_50,
_51,
_52,
_53,
_54,
_55,
_56,
_57,
_58,
_59,
_60,
_61,
_62,
_63,
N,
... )
Value:
N

Definition at line 17 of file enum.hpp.