P99
Basic list processing macros
Collaboration diagram for Basic list processing macros:

## Macros

#define P99_ALLBUTLAST(...)   P99_PASTE2(P00_PRE,P99_PRED(P00_NARG(__VA_ARGS__)))(__VA_ARGS__,)
Obtain all elements but the last of a list. More...

#define P99_CHS(N, ...)   P00_CHS(P99_SKP(N, __VA_ARGS__))
Choose the Nth element in the remaining argument list. More...

#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. More...

#define P99_HAS_COMMA(...)
Determine of the argument list has a comma, i.e at least two arguments. More...

#define P99_IS_EMPTY(...)
Test if the argument list is empty. More...

#define P99_LAST(...)   P99_CHS(P99_PRED(P00_NARG(__VA_ARGS__)), __VA_ARGS__,)
Obtain the last element of a list. More...

#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. More...

#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. More...

#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. More...

## Detailed Description

P99_HAS_COMMA
#define P99_HAS_COMMA(...)
Determine of the argument list has a comma, i.e at least two arguments.
Definition: p99_generated.h:165