Lists

A list is zero or more comma separated items that are not enclosed by parentheses (which would make it a sequence).

Warning

Some list macros may be limited to 30 items.

CORE_PP_HEAD(a, ...)

Expands to the first argument.

CORE_PP_HEAD(a, b, c)   // a

CORE_PP_REST(a, ...)

Expands to the remaining arguments.

CORE_PP_REST(a, b, c)   // b, c

CORE_PP_SECOND(a, b, ...)

Expands to the second argument.

CORE_PP_SECOND(a, b, c)   // b

CORE_PP_THIRD(a, b, c, ...)

Expands to the third argument.

CORE_PP_THIRD(a, b, c)   // c

CORE_PP_CAT(a, b)

Expands to the concatenation of its two arguments.

CORE_PP_CAT(a, b)   // ab

CORE_PP_CATN(a, ...)

Expands to the concatenation of its first row arguments sequenced with the remaining arguments.

CORE_PP_CATN(a, b, c)   // ab, c

CORE_PP_COUNT(...)

Expands to the number of elements in the given list.

CORE_PP_COUNT()          // 0
CORE_PP_COUNT(a)         // 1
CORE_PP_COUNT(a,b)       // 2
CORE_PP_COUNT(a,b,c)     // 3