|
#define | M_ID(X) X |
|
#define | M_CAT(X, Y) M_CAT_(X, Y) |
|
#define | M_CAT_(X, Y) X ## Y |
|
#define | M_EMPTY() |
|
#define | M_DEFER1(X) X M_EMPTY() |
|
#define | M_COMMA(X) X, |
|
#define | M_COMMA_PRE(X) ,X |
|
#define | M_UNPACK(...) __VA_ARGS__ |
|
#define | M_EVAL(...) M_EVAL1(M_EVAL1(M_EVAL1(__VA_ARGS__))) |
|
#define | M_EVAL1(...) M_EVAL2(M_EVAL2(M_EVAL2(__VA_ARGS__))) |
|
#define | M_EVAL2(...) M_EVAL3(M_EVAL3(M_EVAL3(__VA_ARGS__))) |
|
#define | M_EVAL3(...) M_EVAL4(M_EVAL4(M_EVAL4(__VA_ARGS__))) |
|
#define | M_EVAL4(...) M_EVAL5(M_EVAL5(M_EVAL5(__VA_ARGS__))) |
|
#define | M_EVAL5(...) __VA_ARGS__ |
|
#define | M_STR_(X) #X |
|
#define | M_STR(X) M_STR_(X) |
|
#define | M_STRCOMMA(X) M_STR(X), |
|
#define | M_PASTE_(X, Y) X ## Y |
|
#define | M_PASTE(X, Y) M_PASTE_(X, Y) |
|
#define | M_PAIR_FIRST(A, B) A |
|
#define | M_PAIR_SECOND(A, B) B |
|
#define | M_HEAD(X, ...) X |
|
#define | M_TAIL(X, ...) __VA_ARGS__ |
|
#define | M_COUNT(LIST) (std::initializer_list<const char*>{ LIST(M_STRCOMMA) }.size()) |
|
#define | M_CONSTEXPR_COND(COND, IF_TRUE, IF_FALSE) |
|
#define | M_CONSTEXPR_COND_UNCAPTURED(COND, IF_TRUE, IF_FALSE) |
|
#define | M_PAIR_XFORM_MACRO_(_, PAIR, ELEM) M_PAIR_FIRST PAIR ( M_PAIR_SECOND PAIR (ELEM) ) |
|
#define | M_PAIR_XFORM_(PAIR, SEQ) BOOST_PP_SEQ_FOR_EACH(M_PAIR_XFORM_MACRO_, PAIR, SEQ) |
|
#define | M_TRANSFORM_X_MACRO(X, SEQ, FUNC) M_PAIR_XFORM_((X, FUNC), SEQ()) |
|
#define | M_DECLARE_ENUM(LIST) |
|
#define | M_ENUM_TO_STR(LIST) LIST(M_STRCOMMA) |
|
#define | M_DECL(NAME, TYPE) TYPE NAME; |
|
#define | M_ARR_SIZE(ARR) (sizeof(ARR) / sizeof(*(ARR))) |
|
#define | M_DEBUG(MSG) |
|
#define | M_LCOV_EXCL_START /* Start exclusion block */ |
|
#define | M_LCOV_EXCL_STOP /* Stop exclusion block */ |
|
#define | M_LCOV_EXCL_LINE /* Exclude line */ |
|
#define | M_NOINLINE __attribute__((noinline)) |
|
#define | M_INSIST2_(COND, MSG) ::m::_insist((COND), __FILE__, __LINE__, #COND, MSG) |
|
#define | M_INSIST1_(COND) M_INSIST2_(COND, nullptr) |
|
#define | M_GET_INSIST_(_1, _2, NAME, ...) NAME |
|
#define | M_insist(...) M_GET_INSIST_(__VA_ARGS__, M_INSIST2_, M_INSIST1_, XXX)(__VA_ARGS__) |
|
#define | M_unreachable(MSG) m::_abort(__FILE__, __LINE__, (MSG)) |
|
#define | M_notnull(ARG) m::_notnull((ARG), __FILE__, __LINE__, #ARG) |
|
#define | M_nothrow(ARG) |
|
#define | M_DISCARD (void) |
|
|
void | m::_insist (const bool cond, const char *filename, const unsigned line, const char *condstr, const char *msg) |
|
void | m::_abort (const char *filename, const unsigned line, const char *msg) |
|
template<typename T > |
T * | m::_notnull (T *arg, const char *filename, const unsigned line, const char *argstr) |
|
template<typename T > |
std::unique_ptr< T > | m::_notnull (std::unique_ptr< T > arg, const char *filename, const unsigned line, const char *argstr) |
|