P99
Macros
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