TVM  0.9.4
enums.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 tvm
 
 tvm::utils
 

Macros

#define COUNT_VA_ARGS(...)   tvm::utils::count_va_args("" #__VA_ARGS__)
 
#define PP_NARG(...)   PP_ID(PP_NARG_(__VA_ARGS__, PP_RSEQ_N()))
 
#define PP_NARG_(...)   PP_ID(PP_ARG_N(__VA_ARGS__))
 
#define PP_ARG_N( _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, _64, N, ...)   N
 
#define PP_RSEQ_N()
 
#define PP_MAP(macro, data, ...)   PP_ID(PP_APPLY(PP_CHOOSE_MAP_START, PP_NARG(__VA_ARGS__))(macro, data, __VA_ARGS__))
 
#define PP_CHOOSE_MAP_START(count)   PP_MAP##count
 
#define PP_APPLY(macro, ...)   PP_ID(macro(__VA_ARGS__))
 
#define PP_MAP1(m, d, x)   m(d, x)
 
#define PP_MAP2(m, d, x, ...)   m(d, x) PP_ID(PP_MAP1(m, d, __VA_ARGS__))
 
#define PP_MAP3(m, d, x, ...)   m(d, x) PP_ID(PP_MAP2(m, d, __VA_ARGS__))
 
#define PP_MAP4(m, d, x, ...)   m(d, x) PP_ID(PP_MAP3(m, d, __VA_ARGS__))
 
#define PP_MAP5(m, d, x, ...)   m(d, x) PP_ID(PP_MAP4(m, d, __VA_ARGS__))
 
#define PP_MAP6(m, d, x, ...)   m(d, x) PP_ID(PP_MAP5(m, d, __VA_ARGS__))
 
#define PP_MAP7(m, d, x, ...)   m(d, x) PP_ID(PP_MAP6(m, d, __VA_ARGS__))
 
#define PP_MAP8(m, d, x, ...)   m(d, x) PP_ID(PP_MAP7(m, d, __VA_ARGS__))
 
#define PP_MAP9(m, d, x, ...)   m(d, x) PP_ID(PP_MAP8(m, d, __VA_ARGS__))
 
#define PP_MAP10(m, d, x, ...)   m(d, x) PP_ID(PP_MAP9(m, d, __VA_ARGS__))
 
#define PP_MAP11(m, d, x, ...)   m(d, x) PP_ID(PP_MAP10(m, d, __VA_ARGS__))
 
#define PP_MAP12(m, d, x, ...)   m(d, x) PP_ID(PP_MAP11(m, d, __VA_ARGS__))
 
#define PP_MAP13(m, d, x, ...)   m(d, x) PP_ID(PP_MAP12(m, d, __VA_ARGS__))
 
#define PP_MAP14(m, d, x, ...)   m(d, x) PP_ID(PP_MAP13(m, d, __VA_ARGS__))
 
#define PP_MAP15(m, d, x, ...)   m(d, x) PP_ID(PP_MAP14(m, d, __VA_ARGS__))
 
#define PP_MAP16(m, d, x, ...)   m(d, x) PP_ID(PP_MAP15(m, d, __VA_ARGS__))
 
#define PP_MAP17(m, d, x, ...)   m(d, x) PP_ID(PP_MAP16(m, d, __VA_ARGS__))
 
#define PP_MAP18(m, d, x, ...)   m(d, x) PP_ID(PP_MAP17(m, d, __VA_ARGS__))
 
#define PP_MAP19(m, d, x, ...)   m(d, x) PP_ID(PP_MAP18(m, d, __VA_ARGS__))
 
#define PP_MAP20(m, d, x, ...)   m(d, x) PP_ID(PP_MAP19(m, d, __VA_ARGS__))
 
#define PP_MAP21(m, d, x, ...)   m(d, x) PP_ID(PP_MAP20(m, d, __VA_ARGS__))
 
#define PP_MAP22(m, d, x, ...)   m(d, x) PP_ID(PP_MAP21(m, d, __VA_ARGS__))
 
#define PP_MAP23(m, d, x, ...)   m(d, x) PP_ID(PP_MAP22(m, d, __VA_ARGS__))
 
#define PP_MAP24(m, d, x, ...)   m(d, x) PP_ID(PP_MAP23(m, d, __VA_ARGS__))
 
#define PP_MAP25(m, d, x, ...)   m(d, x) PP_ID(PP_MAP24(m, d, __VA_ARGS__))
 
#define PP_MAP26(m, d, x, ...)   m(d, x) PP_ID(PP_MAP25(m, d, __VA_ARGS__))
 
#define PP_MAP27(m, d, x, ...)   m(d, x) PP_ID(PP_MAP26(m, d, __VA_ARGS__))
 
#define PP_MAP28(m, d, x, ...)   m(d, x) PP_ID(PP_MAP27(m, d, __VA_ARGS__))
 
#define PP_MAP29(m, d, x, ...)   m(d, x) PP_ID(PP_MAP28(m, d, __VA_ARGS__))
 
#define PP_MAP30(m, d, x, ...)   m(d, x) PP_ID(PP_MAP29(m, d, __VA_ARGS__))
 
#define PP_MAP31(m, d, x, ...)   m(d, x) PP_ID(PP_MAP30(m, d, __VA_ARGS__))
 
#define PP_MAP32(m, d, x, ...)   m(d, x) PP_ID(PP_MAP31(m, d, __VA_ARGS__))
 
#define PP_MAP33(m, d, x, ...)   m(d, x) PP_ID(PP_MAP32(m, d, __VA_ARGS__))
 
#define PP_MAP34(m, d, x, ...)   m(d, x) PP_ID(PP_MAP33(m, d, __VA_ARGS__))
 
#define PP_MAP35(m, d, x, ...)   m(d, x) PP_ID(PP_MAP34(m, d, __VA_ARGS__))
 
#define PP_MAP36(m, d, x, ...)   m(d, x) PP_ID(PP_MAP35(m, d, __VA_ARGS__))
 
#define PP_MAP37(m, d, x, ...)   m(d, x) PP_ID(PP_MAP36(m, d, __VA_ARGS__))
 
#define PP_MAP38(m, d, x, ...)   m(d, x) PP_ID(PP_MAP37(m, d, __VA_ARGS__))
 
#define PP_MAP39(m, d, x, ...)   m(d, x) PP_ID(PP_MAP38(m, d, __VA_ARGS__))
 
#define PP_MAP40(m, d, x, ...)   m(d, x) PP_ID(PP_MAP39(m, d, __VA_ARGS__))
 
#define PP_MAP41(m, d, x, ...)   m(d, x) PP_ID(PP_MAP40(m, d, __VA_ARGS__))
 
#define PP_MAP42(m, d, x, ...)   m(d, x) PP_ID(PP_MAP41(m, d, __VA_ARGS__))
 
#define PP_MAP43(m, d, x, ...)   m(d, x) PP_ID(PP_MAP42(m, d, __VA_ARGS__))
 
#define PP_MAP44(m, d, x, ...)   m(d, x) PP_ID(PP_MAP43(m, d, __VA_ARGS__))
 
#define PP_MAP45(m, d, x, ...)   m(d, x) PP_ID(PP_MAP44(m, d, __VA_ARGS__))
 
#define PP_MAP46(m, d, x, ...)   m(d, x) PP_ID(PP_MAP45(m, d, __VA_ARGS__))
 
#define PP_MAP47(m, d, x, ...)   m(d, x) PP_ID(PP_MAP46(m, d, __VA_ARGS__))
 
#define PP_MAP48(m, d, x, ...)   m(d, x) PP_ID(PP_MAP47(m, d, __VA_ARGS__))
 
#define PP_MAP49(m, d, x, ...)   m(d, x) PP_ID(PP_MAP48(m, d, __VA_ARGS__))
 
#define PP_MAP50(m, d, x, ...)   m(d, x) PP_ID(PP_MAP49(m, d, __VA_ARGS__))
 
#define PP_MAP51(m, d, x, ...)   m(d, x) PP_ID(PP_MAP50(m, d, __VA_ARGS__))
 
#define PP_MAP52(m, d, x, ...)   m(d, x) PP_ID(PP_MAP51(m, d, __VA_ARGS__))
 
#define PP_MAP53(m, d, x, ...)   m(d, x) PP_ID(PP_MAP52(m, d, __VA_ARGS__))
 
#define PP_MAP54(m, d, x, ...)   m(d, x) PP_ID(PP_MAP53(m, d, __VA_ARGS__))
 
#define PP_MAP55(m, d, x, ...)   m(d, x) PP_ID(PP_MAP54(m, d, __VA_ARGS__))
 
#define PP_MAP56(m, d, x, ...)   m(d, x) PP_ID(PP_MAP55(m, d, __VA_ARGS__))
 
#define PP_MAP57(m, d, x, ...)   m(d, x) PP_ID(PP_MAP56(m, d, __VA_ARGS__))
 
#define PP_MAP58(m, d, x, ...)   m(d, x) PP_ID(PP_MAP57(m, d, __VA_ARGS__))
 
#define PP_MAP59(m, d, x, ...)   m(d, x) PP_ID(PP_MAP58(m, d, __VA_ARGS__))
 
#define PP_MAP60(m, d, x, ...)   m(d, x) PP_ID(PP_MAP59(m, d, __VA_ARGS__))
 
#define PP_MAP61(m, d, x, ...)   m(d, x) PP_ID(PP_MAP60(m, d, __VA_ARGS__))
 
#define PP_MAP62(m, d, x, ...)   m(d, x) PP_ID(PP_MAP61(m, d, __VA_ARGS__))
 
#define PP_MAP63(m, d, x, ...)   m(d, x) PP_ID(PP_MAP62(m, d, __VA_ARGS__))
 
#define PP_MAP64(m, d, x, ...)   m(d, x) PP_ID(PP_MAP63(m, d, __VA_ARGS__))
 
#define PP_ID(x)   x
 
#define ENUM_NAME(EnumT, name)   v == EnumT##_::name ? #name:
 
#define DECLARE_ENUM(EnumName, Enum0, ...)    enum class EnumName##_{Enum0 = EnumName##Parent::EnumName##Size, ##__VA_ARGS__};
 
#define DECLARE_STRUCT(EnumT, name)   constexpr static EnumT##_ name = EnumT##_::name;
 
#define EXTEND_ENUM(EnumName, SelfT, ...)
 
#define DISABLE_SIGNALS(EnumName, ...)
 
#define DISABLE_SIGNALS_BODY(EnumT, name)   static_cast<int>(v) == static_cast<int>(name) ? false:
 
#define CLEAR_DISABLED_SIGNALS(EnumName)
 

Functions

template<unsigned int N>
constexpr unsigned int tvm::utils::count_va_args (const char(&s)[N], unsigned int i=0, unsigned int ret=0)
 

Macro Definition Documentation

◆ CLEAR_DISABLED_SIGNALS

#define CLEAR_DISABLED_SIGNALS (   EnumName)
Value:
bool is##EnumName##StaticallyEnabled(int) const override { return true; } \
template<typename EnumT> \
static constexpr bool EnumName##StaticallyEnabled(EnumT) \
{ return true; }

◆ COUNT_VA_ARGS

#define COUNT_VA_ARGS (   ...)    tvm::utils::count_va_args("" #__VA_ARGS__)

Macro call to count_va_args

◆ DECLARE_ENUM

#define DECLARE_ENUM (   EnumName,
  Enum0,
  ... 
)     enum class EnumName##_{Enum0 = EnumName##Parent::EnumName##Size, ##__VA_ARGS__};

◆ DECLARE_STRUCT

#define DECLARE_STRUCT (   EnumT,
  name 
)    constexpr static EnumT##_ name = EnumT##_::name;

◆ DISABLE_SIGNALS

#define DISABLE_SIGNALS (   EnumName,
  ... 
)
Value:
bool is##EnumName##StaticallyEnabled(int v) const override \
{ return PP_ID(PP_MAP(DISABLE_SIGNALS_BODY, EnumName, __VA_ARGS__)) true; } \
template<typename EnumT> \
static constexpr bool EnumName##StaticallyEnabled(EnumT v) \
{ return PP_ID(PP_MAP(DISABLE_SIGNALS_BODY, EnumName, __VA_ARGS__)) true; }
#define DISABLE_SIGNALS_BODY(EnumT, name)
Definition: enums.h:161
#define PP_MAP(macro, data,...)
Definition: enums.h:60
#define PP_ID(x)
Definition: enums.h:131

◆ DISABLE_SIGNALS_BODY

#define DISABLE_SIGNALS_BODY (   EnumT,
  name 
)    static_cast<int>(v) == static_cast<int>(name) ? false:

◆ ENUM_NAME

#define ENUM_NAME (   EnumT,
  name 
)    v == EnumT##_::name ? #name:

◆ EXTEND_ENUM

#define EXTEND_ENUM (   EnumName,
  SelfT,
  ... 
)
Value:
using EnumName##Parent = SelfT::EnumName##Base; \
PP_ID(DECLARE_ENUM(EnumName, __VA_ARGS__)) \
struct EnumName : public EnumName##Parent::EnumName \
{ \
PP_ID(PP_MAP(DECLARE_STRUCT, EnumName, __VA_ARGS__)) \
}; \
static constexpr unsigned int EnumName##Size = EnumName##Parent::EnumName##Size + PP_ID(COUNT_VA_ARGS(__VA_ARGS__)); \
using EnumName##Parent::EnumName##Name; \
static constexpr const char * EnumName##Name(EnumName##_ v) \
{ return PP_ID(PP_MAP(ENUM_NAME, EnumName, __VA_ARGS__)) "INVALID"; } \
using EnumName##Base = SelfT; \
static constexpr auto EnumName##BaseName = #SelfT;
#define DECLARE_ENUM(EnumName, Enum0,...)
Definition: enums.h:135
#define ENUM_NAME(EnumT, name)
Definition: enums.h:133
#define COUNT_VA_ARGS(...)
Definition: enums.h:29
#define DECLARE_STRUCT(EnumT, name)
Definition: enums.h:138

◆ PP_APPLY

#define PP_APPLY (   macro,
  ... 
)    PP_ID(macro(__VA_ARGS__))

◆ PP_ARG_N

#define PP_ARG_N (   _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,
  _64,
  N,
  ... 
)    N

◆ PP_CHOOSE_MAP_START

#define PP_CHOOSE_MAP_START (   count)    PP_MAP##count

◆ PP_ID

#define PP_ID (   x)    x

◆ PP_MAP

#define PP_MAP (   macro,
  data,
  ... 
)    PP_ID(PP_APPLY(PP_CHOOSE_MAP_START, PP_NARG(__VA_ARGS__))(macro, data, __VA_ARGS__))

◆ PP_MAP1

#define PP_MAP1 (   m,
  d,
 
)    m(d, x)

◆ PP_MAP10

#define PP_MAP10 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP9(m, d, __VA_ARGS__))

◆ PP_MAP11

#define PP_MAP11 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP10(m, d, __VA_ARGS__))

◆ PP_MAP12

#define PP_MAP12 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP11(m, d, __VA_ARGS__))

◆ PP_MAP13

#define PP_MAP13 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP12(m, d, __VA_ARGS__))

◆ PP_MAP14

#define PP_MAP14 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP13(m, d, __VA_ARGS__))

◆ PP_MAP15

#define PP_MAP15 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP14(m, d, __VA_ARGS__))

◆ PP_MAP16

#define PP_MAP16 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP15(m, d, __VA_ARGS__))

◆ PP_MAP17

#define PP_MAP17 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP16(m, d, __VA_ARGS__))

◆ PP_MAP18

#define PP_MAP18 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP17(m, d, __VA_ARGS__))

◆ PP_MAP19

#define PP_MAP19 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP18(m, d, __VA_ARGS__))

◆ PP_MAP2

#define PP_MAP2 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP1(m, d, __VA_ARGS__))

◆ PP_MAP20

#define PP_MAP20 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP19(m, d, __VA_ARGS__))

◆ PP_MAP21

#define PP_MAP21 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP20(m, d, __VA_ARGS__))

◆ PP_MAP22

#define PP_MAP22 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP21(m, d, __VA_ARGS__))

◆ PP_MAP23

#define PP_MAP23 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP22(m, d, __VA_ARGS__))

◆ PP_MAP24

#define PP_MAP24 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP23(m, d, __VA_ARGS__))

◆ PP_MAP25

#define PP_MAP25 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP24(m, d, __VA_ARGS__))

◆ PP_MAP26

#define PP_MAP26 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP25(m, d, __VA_ARGS__))

◆ PP_MAP27

#define PP_MAP27 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP26(m, d, __VA_ARGS__))

◆ PP_MAP28

#define PP_MAP28 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP27(m, d, __VA_ARGS__))

◆ PP_MAP29

#define PP_MAP29 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP28(m, d, __VA_ARGS__))

◆ PP_MAP3

#define PP_MAP3 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP2(m, d, __VA_ARGS__))

◆ PP_MAP30

#define PP_MAP30 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP29(m, d, __VA_ARGS__))

◆ PP_MAP31

#define PP_MAP31 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP30(m, d, __VA_ARGS__))

◆ PP_MAP32

#define PP_MAP32 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP31(m, d, __VA_ARGS__))

◆ PP_MAP33

#define PP_MAP33 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP32(m, d, __VA_ARGS__))

◆ PP_MAP34

#define PP_MAP34 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP33(m, d, __VA_ARGS__))

◆ PP_MAP35

#define PP_MAP35 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP34(m, d, __VA_ARGS__))

◆ PP_MAP36

#define PP_MAP36 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP35(m, d, __VA_ARGS__))

◆ PP_MAP37

#define PP_MAP37 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP36(m, d, __VA_ARGS__))

◆ PP_MAP38

#define PP_MAP38 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP37(m, d, __VA_ARGS__))

◆ PP_MAP39

#define PP_MAP39 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP38(m, d, __VA_ARGS__))

◆ PP_MAP4

#define PP_MAP4 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP3(m, d, __VA_ARGS__))

◆ PP_MAP40

#define PP_MAP40 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP39(m, d, __VA_ARGS__))

◆ PP_MAP41

#define PP_MAP41 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP40(m, d, __VA_ARGS__))

◆ PP_MAP42

#define PP_MAP42 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP41(m, d, __VA_ARGS__))

◆ PP_MAP43

#define PP_MAP43 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP42(m, d, __VA_ARGS__))

◆ PP_MAP44

#define PP_MAP44 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP43(m, d, __VA_ARGS__))

◆ PP_MAP45

#define PP_MAP45 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP44(m, d, __VA_ARGS__))

◆ PP_MAP46

#define PP_MAP46 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP45(m, d, __VA_ARGS__))

◆ PP_MAP47

#define PP_MAP47 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP46(m, d, __VA_ARGS__))

◆ PP_MAP48

#define PP_MAP48 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP47(m, d, __VA_ARGS__))

◆ PP_MAP49

#define PP_MAP49 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP48(m, d, __VA_ARGS__))

◆ PP_MAP5

#define PP_MAP5 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP4(m, d, __VA_ARGS__))

◆ PP_MAP50

#define PP_MAP50 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP49(m, d, __VA_ARGS__))

◆ PP_MAP51

#define PP_MAP51 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP50(m, d, __VA_ARGS__))

◆ PP_MAP52

#define PP_MAP52 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP51(m, d, __VA_ARGS__))

◆ PP_MAP53

#define PP_MAP53 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP52(m, d, __VA_ARGS__))

◆ PP_MAP54

#define PP_MAP54 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP53(m, d, __VA_ARGS__))

◆ PP_MAP55

#define PP_MAP55 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP54(m, d, __VA_ARGS__))

◆ PP_MAP56

#define PP_MAP56 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP55(m, d, __VA_ARGS__))

◆ PP_MAP57

#define PP_MAP57 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP56(m, d, __VA_ARGS__))

◆ PP_MAP58

#define PP_MAP58 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP57(m, d, __VA_ARGS__))

◆ PP_MAP59

#define PP_MAP59 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP58(m, d, __VA_ARGS__))

◆ PP_MAP6

#define PP_MAP6 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP5(m, d, __VA_ARGS__))

◆ PP_MAP60

#define PP_MAP60 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP59(m, d, __VA_ARGS__))

◆ PP_MAP61

#define PP_MAP61 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP60(m, d, __VA_ARGS__))

◆ PP_MAP62

#define PP_MAP62 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP61(m, d, __VA_ARGS__))

◆ PP_MAP63

#define PP_MAP63 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP62(m, d, __VA_ARGS__))

◆ PP_MAP64

#define PP_MAP64 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP63(m, d, __VA_ARGS__))

◆ PP_MAP7

#define PP_MAP7 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP6(m, d, __VA_ARGS__))

◆ PP_MAP8

#define PP_MAP8 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP7(m, d, __VA_ARGS__))

◆ PP_MAP9

#define PP_MAP9 (   m,
  d,
  x,
  ... 
)    m(d, x) PP_ID(PP_MAP8(m, d, __VA_ARGS__))

◆ PP_NARG

#define PP_NARG (   ...)    PP_ID(PP_NARG_(__VA_ARGS__, PP_RSEQ_N()))

PP_NARG achieves the same as COUNT_VA_ARGS but it does not work with empty arguments. However, it performs text substitution which we will need where it is used

◆ PP_NARG_

#define PP_NARG_ (   ...)    PP_ID(PP_ARG_N(__VA_ARGS__))

◆ PP_RSEQ_N

#define PP_RSEQ_N ( )
Value:
64,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