Skip to content

Commit 172eebf

Browse files
committed
Add FOR_EACH_WITH_INDEX
1 parent bed738d commit 172eebf

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

include/iris/pp/seq.hpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,18 @@
2929
#define IRIS_PP_SEQ_FOR_EACH_I_EXEC(state) IRIS_PP_SEQ_FOR_EACH_I_EXEC_I state
3030
#define IRIS_PP_SEQ_FOR_EACH_I_EXEC_I(seq, macro, data) macro(IRIS_PP_SEQ_HEAD(seq), data)
3131

32+
#define IRIS_PP_SEQ_FOR_EACH_WITH_INDEX(seq, macro, data) \
33+
IRIS_PP_FOR((0, seq, macro, data), IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_PRED, IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_UPDATE, IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_EXEC)
34+
35+
#define IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_PRED(state) IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_PRED_I state
36+
#define IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_PRED_I(index, seq, macro, data) IRIS_PP_SEQ_SIZE(seq)
37+
38+
#define IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_UPDATE(state) IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_UPDATE_I state
39+
#define IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_UPDATE_I(index, seq, macro, data) (index, IRIS_PP_SEQ_TAIL(seq), macro, data)
40+
41+
#define IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_EXEC(state) IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_EXEC_I state
42+
#define IRIS_PP_SEQ_FOR_EACH_WITH_INDEX_I_EXEC_I(index, seq, macro, data) macro(index, IRIS_PP_SEQ_HEAD(seq), data)
43+
3244
#define IRIS_PP_SEQ_ELEM_I_0(seq) seq, dummy
3345
#define IRIS_PP_SEQ_ELEM_I_1(seq) IRIS_PP_SEQ_ELEM_I_0
3446
#define IRIS_PP_SEQ_ELEM_I_2(seq) IRIS_PP_SEQ_ELEM_I_1

0 commit comments

Comments
 (0)