Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
ppmpl.h File Reference

Preprocessor metaprogramming library. More...

Go to the source code of this file.

Description

Preprocessor metaprogramming library.

We define some useful preprocessor tricks here.

Definition in file ppmpl.h.

Macros

#define PPMPL_FOREACH(p, ...)   PPMPL_FOREACH0(p, __VA_ARGS__, PPMPL_FOREACH_NIL))
 Iterate over a list of macros.
 
#define PPMPL_FOREACH0(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH1(p, __VA_ARGS__)
 
#define PPMPL_FOREACH1(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH2(p, __VA_ARGS__)
 
#define PPMPL_FOREACH2(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH3(p, __VA_ARGS__)
 
#define PPMPL_FOREACH3(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH4(p, __VA_ARGS__)
 
#define PPMPL_FOREACH4(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH5(p, __VA_ARGS__)
 
#define PPMPL_FOREACH5(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH6(p, __VA_ARGS__)
 
#define PPMPL_FOREACH6(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH7(p, __VA_ARGS__)
 
#define PPMPL_FOREACH7(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH8(p, __VA_ARGS__)
 
#define PPMPL_FOREACH8(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH9(p, __VA_ARGS__)
 
#define PPMPL_FOREACH9(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH10(p, __VA_ARGS__)
 
#define PPMPL_FOREACH10(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH11(p, __VA_ARGS__)
 
#define PPMPL_FOREACH11(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH12(p, __VA_ARGS__)
 
#define PPMPL_FOREACH12(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH13(p, __VA_ARGS__)
 
#define PPMPL_FOREACH13(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH14(p, __VA_ARGS__)
 
#define PPMPL_FOREACH14(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH15(p, __VA_ARGS__)
 
#define PPMPL_FOREACH15(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH16(p, __VA_ARGS__)
 
#define PPMPL_FOREACH16(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH17(p, __VA_ARGS__)
 
#define PPMPL_FOREACH17(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH18(p, __VA_ARGS__)
 
#define PPMPL_FOREACH18(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH19(p, __VA_ARGS__)
 
#define PPMPL_FOREACH19(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH20(p, __VA_ARGS__)
 
#define PPMPL_FOREACH20(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH21(p, __VA_ARGS__)
 
#define PPMPL_FOREACH21(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH22(p, __VA_ARGS__)
 
#define PPMPL_FOREACH22(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH23(p, __VA_ARGS__)
 
#define PPMPL_FOREACH23(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH24(p, __VA_ARGS__)
 
#define PPMPL_FOREACH24(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH25(p, __VA_ARGS__)
 
#define PPMPL_FOREACH25(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH26(p, __VA_ARGS__)
 
#define PPMPL_FOREACH26(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH27(p, __VA_ARGS__)
 
#define PPMPL_FOREACH27(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH28(p, __VA_ARGS__)
 
#define PPMPL_FOREACH28(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH29(p, __VA_ARGS__)
 
#define PPMPL_FOREACH29(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH30(p, __VA_ARGS__)
 
#define PPMPL_FOREACH30(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH31(p, __VA_ARGS__)
 
#define PPMPL_FOREACH31(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH32(p, __VA_ARGS__)
 
#define PPMPL_FOREACH32(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH33(p, __VA_ARGS__)
 
#define PPMPL_FOREACH33(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH34(p, __VA_ARGS__)
 
#define PPMPL_FOREACH34(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH35(p, __VA_ARGS__)
 
#define PPMPL_FOREACH35(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH36(p, __VA_ARGS__)
 
#define PPMPL_FOREACH36(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH37(p, __VA_ARGS__)
 
#define PPMPL_FOREACH37(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH38(p, __VA_ARGS__)
 
#define PPMPL_FOREACH38(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH39(p, __VA_ARGS__)
 
#define PPMPL_FOREACH39(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH40(p, __VA_ARGS__)
 
#define PPMPL_FOREACH40(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH41(p, __VA_ARGS__)
 
#define PPMPL_FOREACH41(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH42(p, __VA_ARGS__)
 
#define PPMPL_FOREACH42(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH43(p, __VA_ARGS__)
 
#define PPMPL_FOREACH43(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH44(p, __VA_ARGS__)
 
#define PPMPL_FOREACH44(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH45(p, __VA_ARGS__)
 
#define PPMPL_FOREACH45(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH46(p, __VA_ARGS__)
 
#define PPMPL_FOREACH46(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH47(p, __VA_ARGS__)
 
#define PPMPL_FOREACH47(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH48(p, __VA_ARGS__)
 
#define PPMPL_FOREACH48(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH49(p, __VA_ARGS__)
 
#define PPMPL_FOREACH49(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH50(p, __VA_ARGS__)
 
#define PPMPL_FOREACH50(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH51(p, __VA_ARGS__)
 
#define PPMPL_FOREACH51(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH52(p, __VA_ARGS__)
 
#define PPMPL_FOREACH52(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH53(p, __VA_ARGS__)
 
#define PPMPL_FOREACH53(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH54(p, __VA_ARGS__)
 
#define PPMPL_FOREACH54(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH55(p, __VA_ARGS__)
 
#define PPMPL_FOREACH55(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH56(p, __VA_ARGS__)
 
#define PPMPL_FOREACH56(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH57(p, __VA_ARGS__)
 
#define PPMPL_FOREACH57(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH58(p, __VA_ARGS__)
 
#define PPMPL_FOREACH58(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH59(p, __VA_ARGS__)
 
#define PPMPL_FOREACH59(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH60(p, __VA_ARGS__)
 
#define PPMPL_FOREACH60(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH61(p, __VA_ARGS__)
 
#define PPMPL_FOREACH61(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH62(p, __VA_ARGS__)
 
#define PPMPL_FOREACH62(p, h, ...)   PPMPL_FOREACH##p##h PPMPL_FOREACH63(p, __VA_ARGS__)
 
#define PPMPL_FOREACH63(p, h, ...)   PPMPL_FOREACH##p##h
 
#define PPMPL_FOREACH_
 
#define PPMPL_FOREACH_P1_
 
#define PPMPL_FOREACH_P2_
 
#define PPMPL_FOREACH_PPMPL_FOREACH_NIL   PPMPL_FOREACH_FINAL(
 
#define PPMPL_FOREACH_P1_PPMPL_FOREACH_NIL   PPMPL_FOREACH_FINAL(
 
#define PPMPL_FOREACH_P2_PPMPL_FOREACH_NIL   PPMPL_FOREACH_FINAL(
 
#define PPMPL_FOREACH_FINAL(...)
 
#define PPMPL_FOREACH_L1(p, ...)   PPMPL_FOREACH_L1_0(p, __VA_ARGS__, PPMPL_FOREACH_L1_NIL))
 
#define PPMPL_FOREACH_L1_0(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_1(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_1(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_2(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_2(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_3(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_3(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_4(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_4(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_5(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_5(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_6(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_6(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_7(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_7(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_8(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_8(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_9(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_9(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_10(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_10(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_11(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_11(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_12(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_12(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_13(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_13(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_14(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_14(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_15(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_15(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_16(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_16(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_17(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_17(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_18(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_18(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_19(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_19(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_20(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_20(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_21(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_21(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_22(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_22(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_23(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_23(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_24(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_24(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_25(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_25(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_26(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_26(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_27(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_27(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_28(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_28(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_29(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_29(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_30(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_30(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_31(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_31(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_32(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_32(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_33(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_33(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_34(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_34(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_35(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_35(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_36(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_36(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_37(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_37(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_38(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_38(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_39(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_39(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_40(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_40(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_41(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_41(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_42(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_42(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_43(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_43(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_44(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_44(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_45(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_45(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_46(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_46(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_47(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_47(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_48(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_48(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_49(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_49(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_50(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_50(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_51(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_51(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_52(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_52(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_53(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_53(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_54(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_54(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_55(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_55(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_56(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_56(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_57(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_57(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_58(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_58(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_59(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_59(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_60(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_60(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_61(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_61(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_62(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_62(p, h, ...)   PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_63(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L1_63(p, h, ...)   PPMPL_FOREACH_L1##p##h
 
#define PPMPL_FOREACH_L1_
 
#define PPMPL_FOREACH_L1_P1_
 
#define PPMPL_FOREACH_L1_P2_
 
#define PPMPL_FOREACH_L1_PPMPL_FOREACH_L1_NIL   PPMPL_FOREACH_L1_FINAL(
 
#define PPMPL_FOREACH_L1_P1_PPMPL_FOREACH_L1_NIL   PPMPL_FOREACH_L1_FINAL(
 
#define PPMPL_FOREACH_L1_P2_PPMPL_FOREACH_L1_NIL   PPMPL_FOREACH_L1_FINAL(
 
#define PPMPL_FOREACH_L1_FINAL(...)
 
#define PPMPL_FOREACH_L2(p, ...)   PPMPL_FOREACH_L2_0(p, __VA_ARGS__, PPMPL_FOREACH_L2_NIL))
 
#define PPMPL_FOREACH_L2_0(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_1(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_1(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_2(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_2(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_3(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_3(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_4(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_4(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_5(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_5(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_6(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_6(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_7(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_7(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_8(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_8(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_9(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_9(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_10(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_10(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_11(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_11(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_12(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_12(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_13(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_13(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_14(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_14(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_15(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_15(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_16(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_16(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_17(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_17(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_18(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_18(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_19(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_19(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_20(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_20(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_21(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_21(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_22(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_22(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_23(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_23(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_24(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_24(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_25(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_25(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_26(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_26(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_27(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_27(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_28(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_28(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_29(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_29(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_30(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_30(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_31(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_31(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_32(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_32(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_33(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_33(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_34(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_34(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_35(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_35(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_36(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_36(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_37(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_37(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_38(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_38(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_39(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_39(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_40(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_40(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_41(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_41(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_42(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_42(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_43(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_43(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_44(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_44(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_45(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_45(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_46(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_46(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_47(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_47(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_48(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_48(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_49(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_49(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_50(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_50(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_51(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_51(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_52(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_52(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_53(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_53(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_54(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_54(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_55(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_55(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_56(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_56(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_57(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_57(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_58(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_58(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_59(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_59(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_60(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_60(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_61(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_61(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_62(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_62(p, h, ...)   PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_63(p, __VA_ARGS__)
 
#define PPMPL_FOREACH_L2_63(p, h, ...)   PPMPL_FOREACH_L2##p##h
 
#define PPMPL_FOREACH_L2_
 
#define PPMPL_FOREACH_L2_P1_
 
#define PPMPL_FOREACH_L2_P2_
 
#define PPMPL_FOREACH_L2_PPMPL_FOREACH_L2_NIL   PPMPL_FOREACH_L2_FINAL(
 
#define PPMPL_FOREACH_L2_P1_PPMPL_FOREACH_L2_NIL   PPMPL_FOREACH_L2_FINAL(
 
#define PPMPL_FOREACH_L2_P2_PPMPL_FOREACH_L2_NIL   PPMPL_FOREACH_L2_FINAL(
 
#define PPMPL_FOREACH_L2_FINAL(...)
 
#define PPMPL_CAT(a, b)   PPMPL_CAT_(a,b)
 Canonical preprocessor concat implementation which evaluates its arguments.
 
#define PPMPL_CAT_(a, b)   a##b
 
#define PPMPL_STRINGIFY(a)   PPMPL_STRINGIFY_(a)
 
#define PPMPL_STRINGIFY_(a)   #a
 

Macro Definition Documentation

◆ PPMPL_FOREACH

#define PPMPL_FOREACH (   p,
  ... 
)    PPMPL_FOREACH0(p, __VA_ARGS__, PPMPL_FOREACH_NIL))

Iterate over a list of macros.

Parameters
pused to disambiguate up to three passes, use _, P1 or P2
...list of macros to be expanded. The user has to supply a definition in the form of PPMPL_FOREACH##p##macroname which shall expand to the desired text.

This user defined macro shall be undefed after use.

#define PPMPL_FOREACH_P1_FOO(arg) arg,
{PPMPL_FOREACH(P1, FOO(1), FOO(2), FOO(3)), -1}
#undef PPMPL_FOREACH_P1_FOO
#define PPMPL_FOREACH(p,...)
Iterate over a list of macros.
Definition ppmpl.h:45

This definition would be expanded to the sequence {1, 2, 3, -1}

One can not recursively nest preprocessor macros. To allow this we define PPMPL_FOREACH_L1 to PPMPL_FOREACH_L2 with the same semantics as PPMPL_FOREACH, This allows to nest the FOREACH loop up to three nesting levels.

Definition at line 45 of file ppmpl.h.

◆ PPMPL_FOREACH0

#define PPMPL_FOREACH0 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH1(p, __VA_ARGS__)

Definition at line 48 of file ppmpl.h.

◆ PPMPL_FOREACH1

#define PPMPL_FOREACH1 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH2(p, __VA_ARGS__)

Definition at line 49 of file ppmpl.h.

◆ PPMPL_FOREACH2

#define PPMPL_FOREACH2 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH3(p, __VA_ARGS__)

Definition at line 50 of file ppmpl.h.

◆ PPMPL_FOREACH3

#define PPMPL_FOREACH3 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH4(p, __VA_ARGS__)

Definition at line 51 of file ppmpl.h.

◆ PPMPL_FOREACH4

#define PPMPL_FOREACH4 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH5(p, __VA_ARGS__)

Definition at line 52 of file ppmpl.h.

◆ PPMPL_FOREACH5

#define PPMPL_FOREACH5 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH6(p, __VA_ARGS__)

Definition at line 53 of file ppmpl.h.

◆ PPMPL_FOREACH6

#define PPMPL_FOREACH6 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH7(p, __VA_ARGS__)

Definition at line 54 of file ppmpl.h.

◆ PPMPL_FOREACH7

#define PPMPL_FOREACH7 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH8(p, __VA_ARGS__)

Definition at line 55 of file ppmpl.h.

◆ PPMPL_FOREACH8

#define PPMPL_FOREACH8 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH9(p, __VA_ARGS__)

Definition at line 56 of file ppmpl.h.

◆ PPMPL_FOREACH9

#define PPMPL_FOREACH9 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH10(p, __VA_ARGS__)

Definition at line 57 of file ppmpl.h.

◆ PPMPL_FOREACH10

#define PPMPL_FOREACH10 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH11(p, __VA_ARGS__)

Definition at line 58 of file ppmpl.h.

◆ PPMPL_FOREACH11

#define PPMPL_FOREACH11 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH12(p, __VA_ARGS__)

Definition at line 59 of file ppmpl.h.

◆ PPMPL_FOREACH12

#define PPMPL_FOREACH12 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH13(p, __VA_ARGS__)

Definition at line 60 of file ppmpl.h.

◆ PPMPL_FOREACH13

#define PPMPL_FOREACH13 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH14(p, __VA_ARGS__)

Definition at line 61 of file ppmpl.h.

◆ PPMPL_FOREACH14

#define PPMPL_FOREACH14 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH15(p, __VA_ARGS__)

Definition at line 62 of file ppmpl.h.

◆ PPMPL_FOREACH15

#define PPMPL_FOREACH15 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH16(p, __VA_ARGS__)

Definition at line 63 of file ppmpl.h.

◆ PPMPL_FOREACH16

#define PPMPL_FOREACH16 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH17(p, __VA_ARGS__)

Definition at line 64 of file ppmpl.h.

◆ PPMPL_FOREACH17

#define PPMPL_FOREACH17 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH18(p, __VA_ARGS__)

Definition at line 65 of file ppmpl.h.

◆ PPMPL_FOREACH18

#define PPMPL_FOREACH18 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH19(p, __VA_ARGS__)

Definition at line 66 of file ppmpl.h.

◆ PPMPL_FOREACH19

#define PPMPL_FOREACH19 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH20(p, __VA_ARGS__)

Definition at line 67 of file ppmpl.h.

◆ PPMPL_FOREACH20

#define PPMPL_FOREACH20 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH21(p, __VA_ARGS__)

Definition at line 68 of file ppmpl.h.

◆ PPMPL_FOREACH21

#define PPMPL_FOREACH21 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH22(p, __VA_ARGS__)

Definition at line 69 of file ppmpl.h.

◆ PPMPL_FOREACH22

#define PPMPL_FOREACH22 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH23(p, __VA_ARGS__)

Definition at line 70 of file ppmpl.h.

◆ PPMPL_FOREACH23

#define PPMPL_FOREACH23 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH24(p, __VA_ARGS__)

Definition at line 71 of file ppmpl.h.

◆ PPMPL_FOREACH24

#define PPMPL_FOREACH24 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH25(p, __VA_ARGS__)

Definition at line 72 of file ppmpl.h.

◆ PPMPL_FOREACH25

#define PPMPL_FOREACH25 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH26(p, __VA_ARGS__)

Definition at line 73 of file ppmpl.h.

◆ PPMPL_FOREACH26

#define PPMPL_FOREACH26 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH27(p, __VA_ARGS__)

Definition at line 74 of file ppmpl.h.

◆ PPMPL_FOREACH27

#define PPMPL_FOREACH27 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH28(p, __VA_ARGS__)

Definition at line 75 of file ppmpl.h.

◆ PPMPL_FOREACH28

#define PPMPL_FOREACH28 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH29(p, __VA_ARGS__)

Definition at line 76 of file ppmpl.h.

◆ PPMPL_FOREACH29

#define PPMPL_FOREACH29 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH30(p, __VA_ARGS__)

Definition at line 77 of file ppmpl.h.

◆ PPMPL_FOREACH30

#define PPMPL_FOREACH30 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH31(p, __VA_ARGS__)

Definition at line 78 of file ppmpl.h.

◆ PPMPL_FOREACH31

#define PPMPL_FOREACH31 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH32(p, __VA_ARGS__)

Definition at line 79 of file ppmpl.h.

◆ PPMPL_FOREACH32

#define PPMPL_FOREACH32 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH33(p, __VA_ARGS__)

Definition at line 80 of file ppmpl.h.

◆ PPMPL_FOREACH33

#define PPMPL_FOREACH33 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH34(p, __VA_ARGS__)

Definition at line 81 of file ppmpl.h.

◆ PPMPL_FOREACH34

#define PPMPL_FOREACH34 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH35(p, __VA_ARGS__)

Definition at line 82 of file ppmpl.h.

◆ PPMPL_FOREACH35

#define PPMPL_FOREACH35 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH36(p, __VA_ARGS__)

Definition at line 83 of file ppmpl.h.

◆ PPMPL_FOREACH36

#define PPMPL_FOREACH36 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH37(p, __VA_ARGS__)

Definition at line 84 of file ppmpl.h.

◆ PPMPL_FOREACH37

#define PPMPL_FOREACH37 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH38(p, __VA_ARGS__)

Definition at line 85 of file ppmpl.h.

◆ PPMPL_FOREACH38

#define PPMPL_FOREACH38 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH39(p, __VA_ARGS__)

Definition at line 86 of file ppmpl.h.

◆ PPMPL_FOREACH39

#define PPMPL_FOREACH39 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH40(p, __VA_ARGS__)

Definition at line 87 of file ppmpl.h.

◆ PPMPL_FOREACH40

#define PPMPL_FOREACH40 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH41(p, __VA_ARGS__)

Definition at line 88 of file ppmpl.h.

◆ PPMPL_FOREACH41

#define PPMPL_FOREACH41 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH42(p, __VA_ARGS__)

Definition at line 89 of file ppmpl.h.

◆ PPMPL_FOREACH42

#define PPMPL_FOREACH42 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH43(p, __VA_ARGS__)

Definition at line 90 of file ppmpl.h.

◆ PPMPL_FOREACH43

#define PPMPL_FOREACH43 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH44(p, __VA_ARGS__)

Definition at line 91 of file ppmpl.h.

◆ PPMPL_FOREACH44

#define PPMPL_FOREACH44 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH45(p, __VA_ARGS__)

Definition at line 92 of file ppmpl.h.

◆ PPMPL_FOREACH45

#define PPMPL_FOREACH45 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH46(p, __VA_ARGS__)

Definition at line 93 of file ppmpl.h.

◆ PPMPL_FOREACH46

#define PPMPL_FOREACH46 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH47(p, __VA_ARGS__)

Definition at line 94 of file ppmpl.h.

◆ PPMPL_FOREACH47

#define PPMPL_FOREACH47 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH48(p, __VA_ARGS__)

Definition at line 95 of file ppmpl.h.

◆ PPMPL_FOREACH48

#define PPMPL_FOREACH48 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH49(p, __VA_ARGS__)

Definition at line 96 of file ppmpl.h.

◆ PPMPL_FOREACH49

#define PPMPL_FOREACH49 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH50(p, __VA_ARGS__)

Definition at line 97 of file ppmpl.h.

◆ PPMPL_FOREACH50

#define PPMPL_FOREACH50 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH51(p, __VA_ARGS__)

Definition at line 98 of file ppmpl.h.

◆ PPMPL_FOREACH51

#define PPMPL_FOREACH51 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH52(p, __VA_ARGS__)

Definition at line 99 of file ppmpl.h.

◆ PPMPL_FOREACH52

#define PPMPL_FOREACH52 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH53(p, __VA_ARGS__)

Definition at line 100 of file ppmpl.h.

◆ PPMPL_FOREACH53

#define PPMPL_FOREACH53 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH54(p, __VA_ARGS__)

Definition at line 101 of file ppmpl.h.

◆ PPMPL_FOREACH54

#define PPMPL_FOREACH54 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH55(p, __VA_ARGS__)

Definition at line 102 of file ppmpl.h.

◆ PPMPL_FOREACH55

#define PPMPL_FOREACH55 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH56(p, __VA_ARGS__)

Definition at line 103 of file ppmpl.h.

◆ PPMPL_FOREACH56

#define PPMPL_FOREACH56 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH57(p, __VA_ARGS__)

Definition at line 104 of file ppmpl.h.

◆ PPMPL_FOREACH57

#define PPMPL_FOREACH57 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH58(p, __VA_ARGS__)

Definition at line 105 of file ppmpl.h.

◆ PPMPL_FOREACH58

#define PPMPL_FOREACH58 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH59(p, __VA_ARGS__)

Definition at line 106 of file ppmpl.h.

◆ PPMPL_FOREACH59

#define PPMPL_FOREACH59 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH60(p, __VA_ARGS__)

Definition at line 107 of file ppmpl.h.

◆ PPMPL_FOREACH60

#define PPMPL_FOREACH60 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH61(p, __VA_ARGS__)

Definition at line 108 of file ppmpl.h.

◆ PPMPL_FOREACH61

#define PPMPL_FOREACH61 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH62(p, __VA_ARGS__)

Definition at line 109 of file ppmpl.h.

◆ PPMPL_FOREACH62

#define PPMPL_FOREACH62 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h PPMPL_FOREACH63(p, __VA_ARGS__)

Definition at line 110 of file ppmpl.h.

◆ PPMPL_FOREACH63

#define PPMPL_FOREACH63 (   p,
  h,
  ... 
)    PPMPL_FOREACH##p##h

Definition at line 111 of file ppmpl.h.

◆ PPMPL_FOREACH_

#define PPMPL_FOREACH_

Definition at line 112 of file ppmpl.h.

◆ PPMPL_FOREACH_P1_

#define PPMPL_FOREACH_P1_

Definition at line 113 of file ppmpl.h.

◆ PPMPL_FOREACH_P2_

#define PPMPL_FOREACH_P2_

Definition at line 114 of file ppmpl.h.

◆ PPMPL_FOREACH_PPMPL_FOREACH_NIL

#define PPMPL_FOREACH_PPMPL_FOREACH_NIL   PPMPL_FOREACH_FINAL(

Definition at line 115 of file ppmpl.h.

◆ PPMPL_FOREACH_P1_PPMPL_FOREACH_NIL

#define PPMPL_FOREACH_P1_PPMPL_FOREACH_NIL   PPMPL_FOREACH_FINAL(

Definition at line 116 of file ppmpl.h.

◆ PPMPL_FOREACH_P2_PPMPL_FOREACH_NIL

#define PPMPL_FOREACH_P2_PPMPL_FOREACH_NIL   PPMPL_FOREACH_FINAL(

Definition at line 117 of file ppmpl.h.

◆ PPMPL_FOREACH_FINAL

#define PPMPL_FOREACH_FINAL (   ...)

Definition at line 118 of file ppmpl.h.

◆ PPMPL_FOREACH_L1

#define PPMPL_FOREACH_L1 (   p,
  ... 
)    PPMPL_FOREACH_L1_0(p, __VA_ARGS__, PPMPL_FOREACH_L1_NIL))

Definition at line 123 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_0

#define PPMPL_FOREACH_L1_0 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_1(p, __VA_ARGS__)

Definition at line 126 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_1

#define PPMPL_FOREACH_L1_1 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_2(p, __VA_ARGS__)

Definition at line 127 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_2

#define PPMPL_FOREACH_L1_2 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_3(p, __VA_ARGS__)

Definition at line 128 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_3

#define PPMPL_FOREACH_L1_3 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_4(p, __VA_ARGS__)

Definition at line 129 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_4

#define PPMPL_FOREACH_L1_4 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_5(p, __VA_ARGS__)

Definition at line 130 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_5

#define PPMPL_FOREACH_L1_5 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_6(p, __VA_ARGS__)

Definition at line 131 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_6

#define PPMPL_FOREACH_L1_6 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_7(p, __VA_ARGS__)

Definition at line 132 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_7

#define PPMPL_FOREACH_L1_7 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_8(p, __VA_ARGS__)

Definition at line 133 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_8

#define PPMPL_FOREACH_L1_8 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_9(p, __VA_ARGS__)

Definition at line 134 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_9

#define PPMPL_FOREACH_L1_9 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_10(p, __VA_ARGS__)

Definition at line 135 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_10

#define PPMPL_FOREACH_L1_10 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_11(p, __VA_ARGS__)

Definition at line 136 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_11

#define PPMPL_FOREACH_L1_11 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_12(p, __VA_ARGS__)

Definition at line 137 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_12

#define PPMPL_FOREACH_L1_12 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_13(p, __VA_ARGS__)

Definition at line 138 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_13

#define PPMPL_FOREACH_L1_13 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_14(p, __VA_ARGS__)

Definition at line 139 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_14

#define PPMPL_FOREACH_L1_14 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_15(p, __VA_ARGS__)

Definition at line 140 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_15

#define PPMPL_FOREACH_L1_15 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_16(p, __VA_ARGS__)

Definition at line 141 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_16

#define PPMPL_FOREACH_L1_16 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_17(p, __VA_ARGS__)

Definition at line 142 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_17

#define PPMPL_FOREACH_L1_17 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_18(p, __VA_ARGS__)

Definition at line 143 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_18

#define PPMPL_FOREACH_L1_18 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_19(p, __VA_ARGS__)

Definition at line 144 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_19

#define PPMPL_FOREACH_L1_19 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_20(p, __VA_ARGS__)

Definition at line 145 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_20

#define PPMPL_FOREACH_L1_20 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_21(p, __VA_ARGS__)

Definition at line 146 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_21

#define PPMPL_FOREACH_L1_21 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_22(p, __VA_ARGS__)

Definition at line 147 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_22

#define PPMPL_FOREACH_L1_22 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_23(p, __VA_ARGS__)

Definition at line 148 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_23

#define PPMPL_FOREACH_L1_23 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_24(p, __VA_ARGS__)

Definition at line 149 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_24

#define PPMPL_FOREACH_L1_24 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_25(p, __VA_ARGS__)

Definition at line 150 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_25

#define PPMPL_FOREACH_L1_25 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_26(p, __VA_ARGS__)

Definition at line 151 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_26

#define PPMPL_FOREACH_L1_26 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_27(p, __VA_ARGS__)

Definition at line 152 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_27

#define PPMPL_FOREACH_L1_27 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_28(p, __VA_ARGS__)

Definition at line 153 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_28

#define PPMPL_FOREACH_L1_28 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_29(p, __VA_ARGS__)

Definition at line 154 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_29

#define PPMPL_FOREACH_L1_29 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_30(p, __VA_ARGS__)

Definition at line 155 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_30

#define PPMPL_FOREACH_L1_30 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_31(p, __VA_ARGS__)

Definition at line 156 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_31

#define PPMPL_FOREACH_L1_31 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_32(p, __VA_ARGS__)

Definition at line 157 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_32

#define PPMPL_FOREACH_L1_32 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_33(p, __VA_ARGS__)

Definition at line 158 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_33

#define PPMPL_FOREACH_L1_33 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_34(p, __VA_ARGS__)

Definition at line 159 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_34

#define PPMPL_FOREACH_L1_34 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_35(p, __VA_ARGS__)

Definition at line 160 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_35

#define PPMPL_FOREACH_L1_35 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_36(p, __VA_ARGS__)

Definition at line 161 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_36

#define PPMPL_FOREACH_L1_36 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_37(p, __VA_ARGS__)

Definition at line 162 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_37

#define PPMPL_FOREACH_L1_37 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_38(p, __VA_ARGS__)

Definition at line 163 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_38

#define PPMPL_FOREACH_L1_38 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_39(p, __VA_ARGS__)

Definition at line 164 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_39

#define PPMPL_FOREACH_L1_39 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_40(p, __VA_ARGS__)

Definition at line 165 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_40

#define PPMPL_FOREACH_L1_40 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_41(p, __VA_ARGS__)

Definition at line 166 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_41

#define PPMPL_FOREACH_L1_41 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_42(p, __VA_ARGS__)

Definition at line 167 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_42

#define PPMPL_FOREACH_L1_42 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_43(p, __VA_ARGS__)

Definition at line 168 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_43

#define PPMPL_FOREACH_L1_43 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_44(p, __VA_ARGS__)

Definition at line 169 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_44

#define PPMPL_FOREACH_L1_44 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_45(p, __VA_ARGS__)

Definition at line 170 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_45

#define PPMPL_FOREACH_L1_45 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_46(p, __VA_ARGS__)

Definition at line 171 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_46

#define PPMPL_FOREACH_L1_46 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_47(p, __VA_ARGS__)

Definition at line 172 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_47

#define PPMPL_FOREACH_L1_47 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_48(p, __VA_ARGS__)

Definition at line 173 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_48

#define PPMPL_FOREACH_L1_48 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_49(p, __VA_ARGS__)

Definition at line 174 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_49

#define PPMPL_FOREACH_L1_49 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_50(p, __VA_ARGS__)

Definition at line 175 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_50

#define PPMPL_FOREACH_L1_50 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_51(p, __VA_ARGS__)

Definition at line 176 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_51

#define PPMPL_FOREACH_L1_51 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_52(p, __VA_ARGS__)

Definition at line 177 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_52

#define PPMPL_FOREACH_L1_52 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_53(p, __VA_ARGS__)

Definition at line 178 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_53

#define PPMPL_FOREACH_L1_53 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_54(p, __VA_ARGS__)

Definition at line 179 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_54

#define PPMPL_FOREACH_L1_54 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_55(p, __VA_ARGS__)

Definition at line 180 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_55

#define PPMPL_FOREACH_L1_55 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_56(p, __VA_ARGS__)

Definition at line 181 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_56

#define PPMPL_FOREACH_L1_56 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_57(p, __VA_ARGS__)

Definition at line 182 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_57

#define PPMPL_FOREACH_L1_57 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_58(p, __VA_ARGS__)

Definition at line 183 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_58

#define PPMPL_FOREACH_L1_58 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_59(p, __VA_ARGS__)

Definition at line 184 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_59

#define PPMPL_FOREACH_L1_59 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_60(p, __VA_ARGS__)

Definition at line 185 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_60

#define PPMPL_FOREACH_L1_60 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_61(p, __VA_ARGS__)

Definition at line 186 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_61

#define PPMPL_FOREACH_L1_61 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_62(p, __VA_ARGS__)

Definition at line 187 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_62

#define PPMPL_FOREACH_L1_62 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h PPMPL_FOREACH_L1_63(p, __VA_ARGS__)

Definition at line 188 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_63

#define PPMPL_FOREACH_L1_63 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L1##p##h

Definition at line 189 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_

#define PPMPL_FOREACH_L1_

Definition at line 190 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_P1_

#define PPMPL_FOREACH_L1_P1_

Definition at line 191 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_P2_

#define PPMPL_FOREACH_L1_P2_

Definition at line 192 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_PPMPL_FOREACH_L1_NIL

#define PPMPL_FOREACH_L1_PPMPL_FOREACH_L1_NIL   PPMPL_FOREACH_L1_FINAL(

Definition at line 193 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_P1_PPMPL_FOREACH_L1_NIL

#define PPMPL_FOREACH_L1_P1_PPMPL_FOREACH_L1_NIL   PPMPL_FOREACH_L1_FINAL(

Definition at line 194 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_P2_PPMPL_FOREACH_L1_NIL

#define PPMPL_FOREACH_L1_P2_PPMPL_FOREACH_L1_NIL   PPMPL_FOREACH_L1_FINAL(

Definition at line 195 of file ppmpl.h.

◆ PPMPL_FOREACH_L1_FINAL

#define PPMPL_FOREACH_L1_FINAL (   ...)

Definition at line 196 of file ppmpl.h.

◆ PPMPL_FOREACH_L2

#define PPMPL_FOREACH_L2 (   p,
  ... 
)    PPMPL_FOREACH_L2_0(p, __VA_ARGS__, PPMPL_FOREACH_L2_NIL))

Definition at line 201 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_0

#define PPMPL_FOREACH_L2_0 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_1(p, __VA_ARGS__)

Definition at line 204 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_1

#define PPMPL_FOREACH_L2_1 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_2(p, __VA_ARGS__)

Definition at line 205 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_2

#define PPMPL_FOREACH_L2_2 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_3(p, __VA_ARGS__)

Definition at line 206 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_3

#define PPMPL_FOREACH_L2_3 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_4(p, __VA_ARGS__)

Definition at line 207 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_4

#define PPMPL_FOREACH_L2_4 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_5(p, __VA_ARGS__)

Definition at line 208 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_5

#define PPMPL_FOREACH_L2_5 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_6(p, __VA_ARGS__)

Definition at line 209 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_6

#define PPMPL_FOREACH_L2_6 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_7(p, __VA_ARGS__)

Definition at line 210 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_7

#define PPMPL_FOREACH_L2_7 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_8(p, __VA_ARGS__)

Definition at line 211 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_8

#define PPMPL_FOREACH_L2_8 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_9(p, __VA_ARGS__)

Definition at line 212 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_9

#define PPMPL_FOREACH_L2_9 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_10(p, __VA_ARGS__)

Definition at line 213 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_10

#define PPMPL_FOREACH_L2_10 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_11(p, __VA_ARGS__)

Definition at line 214 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_11

#define PPMPL_FOREACH_L2_11 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_12(p, __VA_ARGS__)

Definition at line 215 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_12

#define PPMPL_FOREACH_L2_12 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_13(p, __VA_ARGS__)

Definition at line 216 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_13

#define PPMPL_FOREACH_L2_13 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_14(p, __VA_ARGS__)

Definition at line 217 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_14

#define PPMPL_FOREACH_L2_14 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_15(p, __VA_ARGS__)

Definition at line 218 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_15

#define PPMPL_FOREACH_L2_15 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_16(p, __VA_ARGS__)

Definition at line 219 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_16

#define PPMPL_FOREACH_L2_16 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_17(p, __VA_ARGS__)

Definition at line 220 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_17

#define PPMPL_FOREACH_L2_17 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_18(p, __VA_ARGS__)

Definition at line 221 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_18

#define PPMPL_FOREACH_L2_18 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_19(p, __VA_ARGS__)

Definition at line 222 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_19

#define PPMPL_FOREACH_L2_19 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_20(p, __VA_ARGS__)

Definition at line 223 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_20

#define PPMPL_FOREACH_L2_20 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_21(p, __VA_ARGS__)

Definition at line 224 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_21

#define PPMPL_FOREACH_L2_21 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_22(p, __VA_ARGS__)

Definition at line 225 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_22

#define PPMPL_FOREACH_L2_22 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_23(p, __VA_ARGS__)

Definition at line 226 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_23

#define PPMPL_FOREACH_L2_23 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_24(p, __VA_ARGS__)

Definition at line 227 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_24

#define PPMPL_FOREACH_L2_24 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_25(p, __VA_ARGS__)

Definition at line 228 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_25

#define PPMPL_FOREACH_L2_25 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_26(p, __VA_ARGS__)

Definition at line 229 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_26

#define PPMPL_FOREACH_L2_26 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_27(p, __VA_ARGS__)

Definition at line 230 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_27

#define PPMPL_FOREACH_L2_27 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_28(p, __VA_ARGS__)

Definition at line 231 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_28

#define PPMPL_FOREACH_L2_28 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_29(p, __VA_ARGS__)

Definition at line 232 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_29

#define PPMPL_FOREACH_L2_29 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_30(p, __VA_ARGS__)

Definition at line 233 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_30

#define PPMPL_FOREACH_L2_30 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_31(p, __VA_ARGS__)

Definition at line 234 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_31

#define PPMPL_FOREACH_L2_31 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_32(p, __VA_ARGS__)

Definition at line 235 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_32

#define PPMPL_FOREACH_L2_32 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_33(p, __VA_ARGS__)

Definition at line 236 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_33

#define PPMPL_FOREACH_L2_33 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_34(p, __VA_ARGS__)

Definition at line 237 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_34

#define PPMPL_FOREACH_L2_34 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_35(p, __VA_ARGS__)

Definition at line 238 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_35

#define PPMPL_FOREACH_L2_35 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_36(p, __VA_ARGS__)

Definition at line 239 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_36

#define PPMPL_FOREACH_L2_36 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_37(p, __VA_ARGS__)

Definition at line 240 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_37

#define PPMPL_FOREACH_L2_37 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_38(p, __VA_ARGS__)

Definition at line 241 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_38

#define PPMPL_FOREACH_L2_38 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_39(p, __VA_ARGS__)

Definition at line 242 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_39

#define PPMPL_FOREACH_L2_39 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_40(p, __VA_ARGS__)

Definition at line 243 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_40

#define PPMPL_FOREACH_L2_40 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_41(p, __VA_ARGS__)

Definition at line 244 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_41

#define PPMPL_FOREACH_L2_41 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_42(p, __VA_ARGS__)

Definition at line 245 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_42

#define PPMPL_FOREACH_L2_42 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_43(p, __VA_ARGS__)

Definition at line 246 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_43

#define PPMPL_FOREACH_L2_43 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_44(p, __VA_ARGS__)

Definition at line 247 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_44

#define PPMPL_FOREACH_L2_44 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_45(p, __VA_ARGS__)

Definition at line 248 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_45

#define PPMPL_FOREACH_L2_45 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_46(p, __VA_ARGS__)

Definition at line 249 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_46

#define PPMPL_FOREACH_L2_46 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_47(p, __VA_ARGS__)

Definition at line 250 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_47

#define PPMPL_FOREACH_L2_47 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_48(p, __VA_ARGS__)

Definition at line 251 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_48

#define PPMPL_FOREACH_L2_48 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_49(p, __VA_ARGS__)

Definition at line 252 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_49

#define PPMPL_FOREACH_L2_49 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_50(p, __VA_ARGS__)

Definition at line 253 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_50

#define PPMPL_FOREACH_L2_50 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_51(p, __VA_ARGS__)

Definition at line 254 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_51

#define PPMPL_FOREACH_L2_51 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_52(p, __VA_ARGS__)

Definition at line 255 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_52

#define PPMPL_FOREACH_L2_52 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_53(p, __VA_ARGS__)

Definition at line 256 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_53

#define PPMPL_FOREACH_L2_53 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_54(p, __VA_ARGS__)

Definition at line 257 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_54

#define PPMPL_FOREACH_L2_54 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_55(p, __VA_ARGS__)

Definition at line 258 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_55

#define PPMPL_FOREACH_L2_55 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_56(p, __VA_ARGS__)

Definition at line 259 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_56

#define PPMPL_FOREACH_L2_56 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_57(p, __VA_ARGS__)

Definition at line 260 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_57

#define PPMPL_FOREACH_L2_57 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_58(p, __VA_ARGS__)

Definition at line 261 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_58

#define PPMPL_FOREACH_L2_58 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_59(p, __VA_ARGS__)

Definition at line 262 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_59

#define PPMPL_FOREACH_L2_59 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_60(p, __VA_ARGS__)

Definition at line 263 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_60

#define PPMPL_FOREACH_L2_60 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_61(p, __VA_ARGS__)

Definition at line 264 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_61

#define PPMPL_FOREACH_L2_61 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_62(p, __VA_ARGS__)

Definition at line 265 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_62

#define PPMPL_FOREACH_L2_62 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h PPMPL_FOREACH_L2_63(p, __VA_ARGS__)

Definition at line 266 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_63

#define PPMPL_FOREACH_L2_63 (   p,
  h,
  ... 
)    PPMPL_FOREACH_L2##p##h

Definition at line 267 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_

#define PPMPL_FOREACH_L2_

Definition at line 268 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_P1_

#define PPMPL_FOREACH_L2_P1_

Definition at line 269 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_P2_

#define PPMPL_FOREACH_L2_P2_

Definition at line 270 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_PPMPL_FOREACH_L2_NIL

#define PPMPL_FOREACH_L2_PPMPL_FOREACH_L2_NIL   PPMPL_FOREACH_L2_FINAL(

Definition at line 271 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_P1_PPMPL_FOREACH_L2_NIL

#define PPMPL_FOREACH_L2_P1_PPMPL_FOREACH_L2_NIL   PPMPL_FOREACH_L2_FINAL(

Definition at line 272 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_P2_PPMPL_FOREACH_L2_NIL

#define PPMPL_FOREACH_L2_P2_PPMPL_FOREACH_L2_NIL   PPMPL_FOREACH_L2_FINAL(

Definition at line 273 of file ppmpl.h.

◆ PPMPL_FOREACH_L2_FINAL

#define PPMPL_FOREACH_L2_FINAL (   ...)

Definition at line 274 of file ppmpl.h.

◆ PPMPL_CAT

#define PPMPL_CAT (   a,
 
)    PPMPL_CAT_(a,b)

Canonical preprocessor concat implementation which evaluates its arguments.

Definition at line 279 of file ppmpl.h.

◆ PPMPL_CAT_

#define PPMPL_CAT_ (   a,
 
)    a##b

Definition at line 280 of file ppmpl.h.

◆ PPMPL_STRINGIFY

#define PPMPL_STRINGIFY (   a)    PPMPL_STRINGIFY_(a)

Definition at line 283 of file ppmpl.h.

◆ PPMPL_STRINGIFY_

#define PPMPL_STRINGIFY_ (   a)    #a

Definition at line 284 of file ppmpl.h.