P99
Defines
Preprocessor FOR loops
Meta_programming
+ Collaboration diagram for Preprocessor FOR loops:

Defines

#define P99_BIGFUNC(FUNC, M,...)   P99_FOR(FUNC, M, P00_FUNC, P00_IDT, __VA_ARGS__)
 Realize the right associative call of binary function FUNC of all the arguments.
#define P99_BIGOP(OP, M,...)   P99_FOR( , M, OP, P00_IDT, __VA_ARGS__)
 Realize the right associative operation OP of all the arguments.
#define P99_FOR(NAME, N, OP, FUNC,...)
 A preprocessor pseudo iterator.
#define P99_NAME(N, NAME)   P99_FOR(NAME, N, P00_SEQ, P00_NAME_I, P99_REP(N,))
 generate lists of names of the form NAME0, NAME1, ...
#define P99_REPEAT(MACRO, N)   P99_FOR(MACRO, N, P00_SEQ, P00_REPEAT, P99_DUPL(N,))
 Apply the macro MACRO N times.
#define P99_REVS(...)   P00_REVS(P99_NARG(__VA_ARGS__),__VA_ARGS__)
 Revert the argument list.
#define P99_SEA(MACRO,...)   P00_MAP_(P99_NARG(__VA_ARGS__), MACRO, (+), __VA_ARGS__)
 Apply the macro MACRO to the rest of the argument list.
#define P99_SEM(MACRO,...)   P00_MAP_(P99_NARG(__VA_ARGS__), MACRO, (*), __VA_ARGS__)
 Apply the macro MACRO to the rest of the argument list.
#define P99_SEP(MACRO,...)   P00_MAP_(P99_NARG(__VA_ARGS__), MACRO, (;), __VA_ARGS__)
 Apply the macro MACRO to the rest of the argument list.
#define P99_SEQ(MACRO,...)   P00_MAP_(P99_NARG(__VA_ARGS__), MACRO, (,), __VA_ARGS__)
 Apply the macro MACRO to the rest of the argument list.
#define P99_SER(MACRO,...)   P00_MAP_(P99_NARG(__VA_ARGS__), MACRO, ( ), __VA_ARGS__)
 Apply the macro MACRO to the rest of the argument list.
#define P99_UNROLL(MACRO, N)   P99_FOR(MACRO, N, P00_SEP, P00_REPEAT, P99_DUPL(N,))
 Apply the macro MACRO N times.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines