Functions
CPPMAGIC_NOTHING
#define CPPMAGIC_NOTHING()
 
CPPMAGIC_STRINGIFY()
#define CPPMAGIC_STRINGIFY(...)		_CPPMAGIC_STRINGIFY(__VA_ARGS__)
 
CPPMAGIC_GLUE2()
#define CPPMAGIC_GLUE2(a_, b_)		_CPPMAGIC_GLUE2(a_, b_)
 
CPPMAGIC_1ST()
#define CPPMAGIC_1ST(a_, ...)		a_
 
CPPMAGIC_2ND()
#define CPPMAGIC_2ND(a_, b_, ...) b_
 
CPPMAGIC_ISZERO()
#define             CPPMAGIC_ISZERO(a_)
 
CPPMAGIC_NONZERO()
#define CPPMAGIC_NONZERO(a_)		CPPMAGIC_ISZERO(CPPMAGIC_ISZERO(a_))
 
CPPMAGIC_NONEMPTY()
#define             CPPMAGIC_NONEMPTY(...)
 
CPPMAGIC_ISEMPTY()
#define             CPPMAGIC_ISEMPTY(...)
 
CPPMAGIC_IFELSE()
#define             CPPMAGIC_IFELSE(cond_)
 
CPPMAGIC_EVAL1()
#define CPPMAGIC_EVAL1(...)		__VA_ARGS__
 
CPPMAGIC_EVAL2()
#define             CPPMAGIC_EVAL2(...)
 
CPPMAGIC_EVAL4()
#define             CPPMAGIC_EVAL4(...)
 
CPPMAGIC_EVAL8()
#define             CPPMAGIC_EVAL8(...)
 
CPPMAGIC_EVAL16()
#define             CPPMAGIC_EVAL16(...)
 
CPPMAGIC_EVAL32()
#define             CPPMAGIC_EVAL32(...)
 
CPPMAGIC_EVAL64()
#define             CPPMAGIC_EVAL64(...)
 
CPPMAGIC_EVAL128()
#define             CPPMAGIC_EVAL128(...)
 
CPPMAGIC_EVAL256()
#define             CPPMAGIC_EVAL256(...)
 
CPPMAGIC_EVAL512()
#define             CPPMAGIC_EVAL512(...)
 
CPPMAGIC_EVAL1024()
#define             CPPMAGIC_EVAL1024(...)
 
CPPMAGIC_EVAL()
#define CPPMAGIC_EVAL(...)		CPPMAGIC_EVAL1024(__VA_ARGS__)
 
CPPMAGIC_DEFER1()
#define CPPMAGIC_DEFER1(a_) a_ CPPMAGIC_NOTHING()
 
CPPMAGIC_DEFER2()
#define CPPMAGIC_DEFER2(a_) a_ CPPMAGIC_NOTHING CPPMAGIC_NOTHING()()
 
CPPMAGIC_MAP()
#define             CPPMAGIC_MAP(m_, ...)
 
CPPMAGIC_2MAP()
#define             CPPMAGIC_2MAP(m_, ...)
 
CPPMAGIC_JOIN()
#define             CPPMAGIC_JOIN(d_, ...)