preproc
Macros
Section titled “Macros”J_REPEAT1
Section titled “J_REPEAT1”and is used to iterate on lists. There is a size limit of N≤8.
#define J_REPEAT1(X, C, V1, ...) \J_REPEAT2
Section titled “J_REPEAT2”#define J_REPEAT2(X, C, V2, ...) \J_REPEAT3
Section titled “J_REPEAT3”#define J_REPEAT3(X, C, V3, ...) \J_REPEAT4
Section titled “J_REPEAT4”#define J_REPEAT4(X, C, V4, ...) \J_REPEAT5
Section titled “J_REPEAT5”#define J_REPEAT5(X, C, V5, ...) \J_REPEAT6
Section titled “J_REPEAT6”#define J_REPEAT6(X, C, V6, ...) \J_REPEAT7
Section titled “J_REPEAT7”#define J_REPEAT7(X, C, V7, ...) \J_REPEAT8
Section titled “J_REPEAT8”#define J_REPEAT8(X, C, V8, ...) \J_REPEAT
Section titled “J_REPEAT”#define J_REPEAT(X, C, ...) __VA_OPT__(J_REPEAT1(X, C, __VA_ARGS__))requires a few expansion stages.
#define J_ID(...) __VA_OPT__(,) __VA_ARGS__J_CALL3
Section titled “J_CALL3”#define J_CALL3(X, ...) X(__VA_ARGS__)J_CALL2
Section titled “J_CALL2”#define J_CALL2(...) J_CALL3(__VA_ARGS__)J_CALL
Section titled “J_CALL”#define J_CALL(X, C, ...) J_CALL2(X J_ID C, ##__VA_ARGS__)Implementation
Section titled “Implementation”Implementation is in the gint source tree.