P99
Defines
Basic list processing macros
List processing macros
+ Collaboration diagram for Basic list processing macros:

Defines

#define P99_ALLBUTLAST(...)   P99_PASTE2(P00_PRE,P99_PRED(P00_NARG(__VA_ARGS__)))(__VA_ARGS__,)
 Obtain all elements but the last of a list.
#define P99_CHS(N,...)   P00_CHS(P99_SKP(N, __VA_ARGS__))
 Choose the Nth element in the remaining argument list.
#define P99_DUPL(...)   P99_PASTE2(P00_DUPL_0_, P99_IS_LT(P99_NARG(__VA_ARGS__), 2))(__VA_ARGS__)
 Construct a list that repeats the argument list N times.
#define P99_HAS_COMMA(...)
 Determine of the argument list has a comma, i.e at least two arguments.
#define P99_IS_EMPTY(...)
 Test if the argument list is empty.
#define P99_LAST(...)   P99_CHS(P99_PRED(P00_NARG(__VA_ARGS__)), __VA_ARGS__,)
 Obtain the last element of a list.
#define P99_NARG(...)   P00_NARG__1(P99_IS_EMPTY(__VA_ARGS__), P00_NARG(__VA_ARGS__))
 Return the length of the variable length argument list, where an empty argument list is considered to have 0 arguments.
#define P99_SELS(N,...)   P99_PASTE2(P00_PRE, N)(__VA_ARGS__)
#define P99_SKP(N,...)   P99_PASTE2(P00_SKP, N)(__VA_ARGS__)
 Skip N elements in the remaining argument list.
#define P99_SUB(N, L,...)   P00_SUB(L, P99_SKP(N, __VA_ARGS__))
 Get the sublist of length L starting at the Nth element in the remaining argument list.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines