|
|
|
#define
|
VBITS
(val)
VBITS_32
(val)
|
|
|
Counts number of bits required for the given value.
More...
|
|
|
|
#define
|
VBITS_1
(v) ((((v) & (0x0001U << 0)) != 0) ? 1U : 0U)
|
|
|
Internal macro used by
VBITS
.
|
|
|
|
#define
|
VBITS_2
(v) ((((v) & (0x0001U << 1)) != 0) ? VBITS_1 ((v) >> 1) + 1 : VBITS_1 (v))
|
|
|
Internal macro used by
VBITS
.
|
|
|
|
#define
|
VBITS_4
(v) ((((v) & (0x0003U << 2)) != 0) ? VBITS_2 ((v) >> 2) + 2 : VBITS_2 (v))
|
|
|
Internal macro used by
VBITS
.
|
|
|
|
#define
|
VBITS_8
(v) ((((v) & (0x000fU << 4)) != 0) ? VBITS_4 ((v) >> 4) + 4 : VBITS_4 (v))
|
|
|
Internal macro used by
VBITS
.
|
|
|
|
#define
|
VBITS_16
(v) ((((v) & (0x00ffU << 8)) != 0) ? VBITS_8 ((v) >> 8) + 8 : VBITS_8 (v))
|
|
|
Internal macro used by
VBITS
.
|
|
|
|
#define
|
VBITS_32
(v) ((((v) & (0xffffU << 16)) != 0) ? VBITS_16((v) >> 16) + 16 : VBITS_16(v))
|
|
|
Internal macro used by
VBITS
.
|
|
|
|
#define
|
STRING_CONCATENATE_IMPL
(lhs, rhs) lhs ## rhs
|
|
|
Implementation specific macro for delayed macro expansion used in string concatenation.
More...
|
|
|
|
#define
|
STRING_CONCATENATE
(lhs, rhs)
STRING_CONCATENATE_IMPL
(lhs, rhs)
|
|
|
Macro used to concatenate string using delayed macro expansion.
More...
|
|
|
|
#define
|
STATIC_ASSERT_SIMPLE
(EXPR) extern char (*_do_assert(void)) [sizeof(char[1 - 2*!(EXPR)])]
|
|
|
|
#define
|
STATIC_ASSERT_MSG
(EXPR, MSG) extern char (*_do_assert(void)) [sizeof(char[1 - 2*!(EXPR)])]
|
|
|
|
#define
|
_SELECT_ASSERT_FUNC
(x, EXPR, MSG, ASSERT_MACRO,...) ASSERT_MACRO
|
|
|
|
#define
|
STATIC_ASSERT
(...)
|
|
|
Static (i.e. compile time) assert macro.
More...
|
|
|
|
#define
|
NUM_VA_ARGS_IMPL
(_0, _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, N,...) N
|
|
|
Implementation details for NUM_VAR_ARGS.
|
|
|
|
#define
|
NUM_VA_ARGS
(...)
|
|
|
Macro to get the number of arguments in a call variadic macro call.
More...
|
|
|
|
#define
|
NUM_VA_ARGS_LESS_1_IMPL
(_ignored,_0, _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, N,...) N
|
|
|
Implementation details for NUM_VAR_ARGS.
|
|
|
|
#define
|
NUM_VA_ARGS_LESS_1
(...)
|
|
|
Macro to get the number of arguments in a call variadic macro call. First argument is not counted.
More...
|
|
|
|
#define
|
ROUNDED_DIV
(A, B) (((A) + ((B) / 2)) / (B))
|
|
|
Macro for performing rounded integer division (as opposed to truncating the result).
More...
|
|
|
|
#define
|
IS_POWER_OF_TWO
(A) ( ((A) != 0) && ((((A) - 1) & (A)) == 0) )
|
|
|
Macro for checking if an integer is a power of two.
More...
|
|
|
|
#define
|
MSEC_TO_UNITS
(TIME, RESOLUTION) (((TIME) * 1000) / (RESOLUTION))
|
|
|
Macro for converting milliseconds to ticks.
More...
|
|
|
|
#define
|
CEIL_DIV
(A, B) (((A) + (B) - 1) / (B))
|
|
|
Macro for performing integer division, making sure the result is rounded up.
More...
|
|
|
|
#define
|
WORD_ALIGNED_MEM_BUFF
(NAME, MIN_SIZE) static uint32_t NAME[
CEIL_DIV
(MIN_SIZE, sizeof(uint32_t))]
|
|
|
Macro for creating a buffer aligned to 4 bytes.
More...
|
|
|
|
#define
|
BYTES_TO_WORDS
(n_bytes) (((n_bytes) + 3) >> 2)
|
|
|
Macro for calculating the number of words that are needed to hold a number of bytes.
More...
|
|
|
|
#define
|
BYTES_PER_WORD
(4)
|
|
|
The number of bytes in a word.
|
|
|
|
#define
|
ALIGN_NUM
(alignment, number) (((number) - 1) + (alignment) - (((number) - 1) % (alignment)))
|
|
|
Macro for increasing a number to the nearest (larger) multiple of another number.
More...
|
|
|
|
#define
|
GET_ARG_1
(a1, a2) a1
|
|
|
Macro for getting first of 2 parameters.
More...
|
|
|
|
#define
|
GET_ARG_2
(a1, a2) a2
|
|
|
Macro for getting second of 2 parameters.
More...
|
|
|
|
#define
|
CONTAINER_OF
(ptr, type, member) (type *)((char *)ptr - offsetof(type, member))
|
|
|
Container of macro (borrowed from Linux kernel).
More...
|
|
|
|
#define
|
BF_MASK
(bcnt, boff) ( ((1U << (bcnt)) - 1U) << (boff) )
|
|
|
Define Bit-field mask.
More...
|
|
|
|
#define
|
BF_GET
(val, bcnt, boff) ( ( (val) &
BF_MASK
((bcnt), (boff)) ) >> (boff) )
|
|
|
Get bit-field.
More...
|
|
|
|
#define
|
BF_VAL
(val, bcnt, boff) ( (((uint32_t)(val)) << (boff)) &
BF_MASK
(bcnt, boff) )
|
|
|
Create bit-field value.
More...
|
|
|
|
#define
|
BF_CX
(bcnt, boff) ( ((((uint32_t)(bcnt)) <<
BF_CX_BCNT_POS
) &
BF_CX_BCNT_MASK
) | ((((uint32_t)(boff)) <<
BF_CX_BOFF_POS
) &
BF_CX_BOFF_MASK
) )
|
|
|
Define complex bit-field.
More...
|
|
|
|
#define
|
BF_CX_BCNT
(bf_cx) ( ((bf_cx) &
BF_CX_BCNT_MASK
) >>
BF_CX_BCNT_POS
)
|
|
|
Get number of bits in bit-field.
More...
|
|
|
|
#define
|
BF_CX_BOFF
(bf_cx) ( ((bf_cx) &
BF_CX_BOFF_MASK
) >>
BF_CX_BOFF_POS
)
|
|
|
Get lowest bit number in the field.
More...
|
|
|
|
#define
|
BF_CX_MASK
(bf_cx)
BF_MASK
(
BF_CX_BCNT
(bf_cx),
BF_CX_BOFF
(bf_cx))
|
|
|
Get bit mask of the selected field.
More...
|
|
|
|
#define
|
BF_CX_GET
(val, bf_cx)
BF_GET
(val,
BF_CX_BCNT
(bf_cx),
BF_CX_BOFF
(bf_cx))
|
|
|
Get bit-field.
More...
|
|
|
|
#define
|
BF_CX_VAL
(val, bf_cx)
BF_VAL
(val,
BF_CX_BCNT
(bf_cx),
BF_CX_BOFF
(bf_cx))
|
|
|
Create bit-field value.
More...
|
|
|
|
#define
|
BRACKET_EXTRACT
(a) BRACKET_EXTRACT_(a)
|
|
|
Extracting data from the brackets.
More...
|
|
|
|
#define
|
BRACKET_EXTRACT_
(a) BRACKET_EXTRACT__ a
|
|
|
|
#define
|
BRACKET_EXTRACT__
(...) __VA_ARGS__
|
|
|
|
#define
|
NUM_VA_ARGS_IS_MORE_THAN_1
(...)
NUM_IS_MORE_THAN_1
(
NUM_VA_ARGS
(__VA_ARGS__))
|
|
|
Check if number of parameters is more than 1.
More...
|
|
|
|
#define
|
NUM_IS_MORE_THAN_1
(N) NUM_IS_MORE_THAN_1_(N)
|
|
|
Check if given numeric value is bigger than 1.
More...
|
|
|
|
#define
|
NUM_IS_MORE_THAN_1_
(N) NUM_IS_MORE_THAN_1_PROBE_(NUM_IS_MORE_THAN_1_PROBE_ ## N, 1)
|
|
|
|
#define
|
NUM_IS_MORE_THAN_1_PROBE_
(...)
GET_VA_ARG_1
(
GET_ARGS_AFTER_1
(__VA_ARGS__))
|
|
|
|
#define
|
NUM_IS_MORE_THAN_1_PROBE_0
~, 0
|
|
|
|
#define
|
NUM_IS_MORE_THAN_1_PROBE_1
~, 0
|
|
|
|
#define
|
GET_VA_ARG_1
(...) GET_VA_ARG_1_(__VA_ARGS__, )
|
|
|
Get the first argument.
More...
|
|
|
|
#define
|
GET_VA_ARG_1_
(a1,...) a1
|
|
|
|
#define
|
GET_ARGS_AFTER_1
(...) GET_ARGS_AFTER_1_(__VA_ARGS__, )
|
|
|
Get all the arguments but the first one.
More...
|
|
|
|
#define
|
GET_ARGS_AFTER_1_
(a1,...) __VA_ARGS__
|
|
|
|
#define
|
FIELD_SIZE
(struct_type, field) sizeof(((struct struct_type*)NULL)->field)
|
|
|
Size of a field in declared structure.
More...
|
|
|
|
#define
|
FIELD_ARRAY_SIZE
(struct_type, field) (
FIELD_SIZE
(struct_type, field) /
FIELD_SIZE
(struct_type, field[0]))
|
|
|
Number of elements in field array in declared structure.
More...
|
|
|
|
#define
|
MACRO_MAP
(...) MACRO_MAP_(__VA_ARGS__)
|
|
|
Mapping macro.
More...
|
|
|
|
#define
|
MACRO_MAP_
(...)
MACRO_MAP_N
(
NUM_VA_ARGS_LESS_1
(__VA_ARGS__), __VA_ARGS__)
|
|
|
|
#define
|
MACRO_MAP_REC
(...) MACRO_MAP_REC_(__VA_ARGS__)
|
|
|
Mapping macro, recursive version.
More...
|
|
|
|
#define
|
MACRO_MAP_REC_
(...)
MACRO_MAP_REC_N
(
NUM_VA_ARGS_LESS_1
(__VA_ARGS__), __VA_ARGS__)
|
|
|
|
#define
|
MACRO_MAP_N
(N,...) MACRO_MAP_N_(N, __VA_ARGS__)
|
|
|
Mapping N arguments macro.
More...
|
|
|
|
#define
|
MACRO_MAP_N_
(N,...)
CONCAT_2
(MACRO_MAP_, N)(__VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_N
(N,...) MACRO_MAP_REC_N_(N, __VA_ARGS__)
|
|
|
Mapping N arguments macro, recursive version.
More...
|
|
|
|
#define
|
MACRO_MAP_REC_N_
(N,...)
CONCAT_2
(MACRO_MAP_REC_, N)(__VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_0
(...)
|
|
|
|
#define
|
MACRO_MAP_1
(macro, a,...) macro(a)
|
|
|
|
#define
|
MACRO_MAP_2
(macro, a,...) macro(a) MACRO_MAP_1 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_3
(macro, a,...) macro(a) MACRO_MAP_2 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_4
(macro, a,...) macro(a) MACRO_MAP_3 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_5
(macro, a,...) macro(a) MACRO_MAP_4 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_6
(macro, a,...) macro(a) MACRO_MAP_5 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_7
(macro, a,...) macro(a) MACRO_MAP_6 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_8
(macro, a,...) macro(a) MACRO_MAP_7 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_9
(macro, a,...) macro(a) MACRO_MAP_8 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_10
(macro, a,...) macro(a) MACRO_MAP_9 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_11
(macro, a,...) macro(a) MACRO_MAP_10(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_12
(macro, a,...) macro(a) MACRO_MAP_11(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_13
(macro, a,...) macro(a) MACRO_MAP_12(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_14
(macro, a,...) macro(a) MACRO_MAP_13(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_15
(macro, a,...) macro(a) MACRO_MAP_14(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_16
(macro, a,...) macro(a) MACRO_MAP_15(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_17
(macro, a,...) macro(a) MACRO_MAP_16(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_18
(macro, a,...) macro(a) MACRO_MAP_17(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_19
(macro, a,...) macro(a) MACRO_MAP_18(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_20
(macro, a,...) macro(a) MACRO_MAP_19(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_21
(macro, a,...) macro(a) MACRO_MAP_20(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_22
(macro, a,...) macro(a) MACRO_MAP_21(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_23
(macro, a,...) macro(a) MACRO_MAP_22(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_24
(macro, a,...) macro(a) MACRO_MAP_23(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_25
(macro, a,...) macro(a) MACRO_MAP_24(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_26
(macro, a,...) macro(a) MACRO_MAP_25(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_27
(macro, a,...) macro(a) MACRO_MAP_26(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_28
(macro, a,...) macro(a) MACRO_MAP_27(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_29
(macro, a,...) macro(a) MACRO_MAP_28(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_30
(macro, a,...) macro(a) MACRO_MAP_29(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_31
(macro, a,...) macro(a) MACRO_MAP_30(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_32
(macro, a,...) macro(a) MACRO_MAP_31(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_0
(...)
|
|
|
|
#define
|
MACRO_MAP_REC_1
(macro, a,...) macro(a)
|
|
|
|
#define
|
MACRO_MAP_REC_2
(macro, a,...) macro(a) MACRO_MAP_REC_1 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_3
(macro, a,...) macro(a) MACRO_MAP_REC_2 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_4
(macro, a,...) macro(a) MACRO_MAP_REC_3 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_5
(macro, a,...) macro(a) MACRO_MAP_REC_4 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_6
(macro, a,...) macro(a) MACRO_MAP_REC_5 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_7
(macro, a,...) macro(a) MACRO_MAP_REC_6 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_8
(macro, a,...) macro(a) MACRO_MAP_REC_7 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_9
(macro, a,...) macro(a) MACRO_MAP_REC_8 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_10
(macro, a,...) macro(a) MACRO_MAP_REC_9 (macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_11
(macro, a,...) macro(a) MACRO_MAP_REC_10(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_12
(macro, a,...) macro(a) MACRO_MAP_REC_11(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_13
(macro, a,...) macro(a) MACRO_MAP_REC_12(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_14
(macro, a,...) macro(a) MACRO_MAP_REC_13(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_15
(macro, a,...) macro(a) MACRO_MAP_REC_14(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_16
(macro, a,...) macro(a) MACRO_MAP_REC_15(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_17
(macro, a,...) macro(a) MACRO_MAP_REC_16(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_18
(macro, a,...) macro(a) MACRO_MAP_REC_17(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_19
(macro, a,...) macro(a) MACRO_MAP_REC_18(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_20
(macro, a,...) macro(a) MACRO_MAP_REC_19(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_21
(macro, a,...) macro(a) MACRO_MAP_REC_20(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_22
(macro, a,...) macro(a) MACRO_MAP_REC_21(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_23
(macro, a,...) macro(a) MACRO_MAP_REC_22(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_24
(macro, a,...) macro(a) MACRO_MAP_REC_23(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_25
(macro, a,...) macro(a) MACRO_MAP_REC_24(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_26
(macro, a,...) macro(a) MACRO_MAP_REC_25(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_27
(macro, a,...) macro(a) MACRO_MAP_REC_26(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_28
(macro, a,...) macro(a) MACRO_MAP_REC_27(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_29
(macro, a,...) macro(a) MACRO_MAP_REC_28(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_30
(macro, a,...) macro(a) MACRO_MAP_REC_29(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_31
(macro, a,...) macro(a) MACRO_MAP_REC_30(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_REC_32
(macro, a,...) macro(a) MACRO_MAP_REC_31(macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR
(...) MACRO_MAP_FOR_(__VA_ARGS__)
|
|
|
Mapping macro with current index.
More...
|
|
|
|
#define
|
MACRO_MAP_FOR_N_LIST
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|
|
|
|
#define
|
MACRO_MAP_FOR_
(...)
MACRO_MAP_FOR_N
(
NUM_VA_ARGS_LESS_1
(__VA_ARGS__), __VA_ARGS__)
|
|
|
|
#define
|
MACRO_MAP_FOR_N
(N,...) MACRO_MAP_FOR_N_(N, __VA_ARGS__)
|
|
|
Mapping N arguments macro with current index.
More...
|
|
|
|
#define
|
MACRO_MAP_FOR_N_
(N,...)
CONCAT_2
(MACRO_MAP_FOR_, N)((MACRO_MAP_FOR_N_LIST), __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_0
(n_list,...)
|
|
|
|
#define
|
MACRO_MAP_FOR_1
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)))
|
|
|
|
#define
|
MACRO_MAP_FOR_2
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_1 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_3
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_2 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_4
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_3 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_5
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_4 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_6
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_5 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_7
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_6 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_8
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_7 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_9
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_8 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_10
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_9 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_11
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_10((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_12
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_11((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_13
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_12((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_14
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_13((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_15
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_14((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_16
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_15((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_17
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_16((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_18
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_17((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_19
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_18((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_20
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_19((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_21
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_20((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_22
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_21((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_23
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_22((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_24
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_23((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_25
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_24((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_26
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_25((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_27
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_26((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_28
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_27((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_29
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_28((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_30
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_29((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_31
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_30((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_32
(n_list, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list))) MACRO_MAP_FOR_31((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM
(param,...) MACRO_MAP_FOR_PARAM_(param, __VA_ARGS__)
|
|
|
Mapping macro with current index and parameter.
More...
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_
(param,...)
MACRO_MAP_FOR_PARAM_N
(
NUM_VA_ARGS_LESS_1
(__VA_ARGS__), param, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_N
(N, param,...) MACRO_MAP_FOR_PARAM_N_(N, param, __VA_ARGS__)
|
|
|
Mapping N arguments macro with with current index and parameter.
More...
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_N_
(N, param,...)
CONCAT_2
(MACRO_MAP_FOR_PARAM_, N)((MACRO_MAP_FOR_N_LIST), param, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_0
(n_list, param,...)
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_1
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param)
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_2
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_1 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_3
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_2 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_4
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_3 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_5
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_4 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_6
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_5 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_7
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_6 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_8
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_7 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_9
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_8 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_10
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_9 ((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_11
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_10((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_12
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_11((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_13
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_12((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_14
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_13((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_15
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_14((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_16
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_15((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_17
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_16((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_18
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_17((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_19
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_18((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_20
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_19((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_21
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_20((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_22
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_21((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_23
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_22((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_24
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_23((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_25
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_24((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_26
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_25((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_27
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_26((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_28
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_27((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_29
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_28((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_30
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_29((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_31
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_30((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_MAP_FOR_PARAM_32
(n_list, param, macro, a,...) macro(a,
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), param) MACRO_MAP_FOR_PARAM_31((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), param, macro, __VA_ARGS__, )
|
|
|
|
#define
|
MACRO_REPEAT
(count, macro,...) MACRO_REPEAT_(count, macro, __VA_ARGS__)
|
|
|
Repeating macro.
More...
|
|
|
|
#define
|
MACRO_REPEAT_
(count, macro,...)
CONCAT_2
(MACRO_REPEAT_, count)(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_0
(macro,...)
|
|
|
|
#define
|
MACRO_REPEAT_1
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_0(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_2
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_1(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_3
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_2(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_4
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_3(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_5
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_4(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_6
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_5(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_7
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_6(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_8
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_7(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_9
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_8(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_10
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_9(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_11
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_10(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_12
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_11(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_13
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_12(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_14
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_13(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_15
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_14(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_16
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_15(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_17
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_16(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_18
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_17(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_19
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_18(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_20
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_19(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_21
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_20(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_22
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_21(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_23
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_22(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_24
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_23(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_25
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_24(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_26
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_25(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_27
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_26(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_28
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_27(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_29
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_28(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_30
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_29(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_31
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_30(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_32
(macro,...) macro(__VA_ARGS__) MACRO_REPEAT_31(macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR
(count, macro,...) MACRO_REPEAT_FOR_(count, macro, __VA_ARGS__)
|
|
|
Repeating macro with current index.
More...
|
|
|
|
#define
|
MACRO_REPEAT_FOR_
(count, macro,...)
CONCAT_2
(MACRO_REPEAT_FOR_, count)((MACRO_MAP_FOR_N_LIST), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_0
(n_list, macro,...)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_1
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_0((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_2
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_1((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_3
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_2((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_4
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_3((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_5
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_4((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_6
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_5((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_7
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_6((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_8
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_7((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_9
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_8((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_10
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_9((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_11
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_10((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_12
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_11((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_13
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_12((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_14
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_13((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_15
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_14((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_16
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_15((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_17
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_16((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_18
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_17((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_19
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_18((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_20
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_19((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_21
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_20((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_22
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_21((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_23
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_22((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_24
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_23((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_25
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_24((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_26
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_25((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_27
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_26((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_28
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_27((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_29
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_28((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_30
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_29((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_31
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_30((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
MACRO_REPEAT_FOR_32
(n_list, macro,...) macro(
GET_VA_ARG_1
(
BRACKET_EXTRACT
(n_list)), __VA_ARGS__) MACRO_REPEAT_FOR_31((
GET_ARGS_AFTER_1
(
BRACKET_EXTRACT
(n_list))), macro, __VA_ARGS__)
|
|
|
|
#define
|
PARAM_CBRACE
(p) { p },
|
|
|
Adding curly brace to the macro parameter.
More...
|
|
|