diff --git a/Include/Aurora/Async/Async.hpp b/Include/Aurora/Async/Async.hpp index ba542153..e8ff0dae 100644 --- a/Include/Aurora/Async/Async.hpp +++ b/Include/Aurora/Async/Async.hpp @@ -213,6 +213,7 @@ namespace Aurora::Async }; AUKN_SYM AuSPtr NewWorkItem(const WorkerId_t &worker, const AuSPtr &task, bool supportsBlocking = false); + AUKN_SYM AuSPtr NewFence(); #pragma region EASE_OF_READING struct BasicWorkStdFunc : IWorkItemHandler @@ -277,7 +278,7 @@ namespace Aurora::Async }; /// @hideinitializer - template, typename Job_t = FJob> + template, typename Job_t = FJob> struct BasicWorkCallback : IWorkItemHandler, std::enable_shared_from_this { BasicWorkCallback() diff --git a/Include/AuroraForEach.hpp b/Include/AuroraForEach.hpp new file mode 100644 index 00000000..e6ab3ddc --- /dev/null +++ b/Include/AuroraForEach.hpp @@ -0,0 +1,933 @@ +/** + * X-Macro alternative. Defines AU_FE_N(expandable, ...args*N) + * Autogenerated by forEach.js; do not modify" + */ + +#define AU_FE_EXPAND(exp) exp +#define AU_FE_0(prefix) +#define AU_FE_1(prefix, X0) prefix(X0) AU_FE_EXPAND(AU_FE_0(prefix)) +#define AU_FE_2(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_1(prefix, __VA_ARGS__)) +#define AU_FE_3(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_2(prefix, __VA_ARGS__)) +#define AU_FE_4(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_3(prefix, __VA_ARGS__)) +#define AU_FE_5(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_4(prefix, __VA_ARGS__)) +#define AU_FE_6(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_5(prefix, __VA_ARGS__)) +#define AU_FE_7(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_6(prefix, __VA_ARGS__)) +#define AU_FE_8(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_7(prefix, __VA_ARGS__)) +#define AU_FE_9(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_8(prefix, __VA_ARGS__)) +#define AU_FE_10(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_9(prefix, __VA_ARGS__)) +#define AU_FE_11(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_10(prefix, __VA_ARGS__)) +#define AU_FE_12(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_11(prefix, __VA_ARGS__)) +#define AU_FE_13(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_12(prefix, __VA_ARGS__)) +#define AU_FE_14(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_13(prefix, __VA_ARGS__)) +#define AU_FE_15(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_14(prefix, __VA_ARGS__)) +#define AU_FE_16(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_15(prefix, __VA_ARGS__)) +#define AU_FE_17(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_16(prefix, __VA_ARGS__)) +#define AU_FE_18(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_17(prefix, __VA_ARGS__)) +#define AU_FE_19(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_18(prefix, __VA_ARGS__)) +#define AU_FE_20(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_19(prefix, __VA_ARGS__)) +#define AU_FE_21(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_20(prefix, __VA_ARGS__)) +#define AU_FE_22(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_21(prefix, __VA_ARGS__)) +#define AU_FE_23(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_22(prefix, __VA_ARGS__)) +#define AU_FE_24(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_23(prefix, __VA_ARGS__)) +#define AU_FE_25(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_24(prefix, __VA_ARGS__)) +#define AU_FE_26(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_25(prefix, __VA_ARGS__)) +#define AU_FE_27(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_26(prefix, __VA_ARGS__)) +#define AU_FE_28(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_27(prefix, __VA_ARGS__)) +#define AU_FE_29(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_28(prefix, __VA_ARGS__)) +#define AU_FE_30(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_29(prefix, __VA_ARGS__)) +#define AU_FE_31(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_30(prefix, __VA_ARGS__)) +#define AU_FE_32(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_31(prefix, __VA_ARGS__)) +#define AU_FE_33(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_32(prefix, __VA_ARGS__)) +#define AU_FE_34(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_33(prefix, __VA_ARGS__)) +#define AU_FE_35(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_34(prefix, __VA_ARGS__)) +#define AU_FE_36(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_35(prefix, __VA_ARGS__)) +#define AU_FE_37(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_36(prefix, __VA_ARGS__)) +#define AU_FE_38(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_37(prefix, __VA_ARGS__)) +#define AU_FE_39(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_38(prefix, __VA_ARGS__)) +#define AU_FE_40(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_39(prefix, __VA_ARGS__)) +#define AU_FE_41(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_40(prefix, __VA_ARGS__)) +#define AU_FE_42(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_41(prefix, __VA_ARGS__)) +#define AU_FE_43(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_42(prefix, __VA_ARGS__)) +#define AU_FE_44(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_43(prefix, __VA_ARGS__)) +#define AU_FE_45(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_44(prefix, __VA_ARGS__)) +#define AU_FE_46(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_45(prefix, __VA_ARGS__)) +#define AU_FE_47(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_46(prefix, __VA_ARGS__)) +#define AU_FE_48(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_47(prefix, __VA_ARGS__)) +#define AU_FE_49(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_48(prefix, __VA_ARGS__)) +#define AU_FE_50(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_49(prefix, __VA_ARGS__)) +#define AU_FE_51(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_50(prefix, __VA_ARGS__)) +#define AU_FE_52(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_51(prefix, __VA_ARGS__)) +#define AU_FE_53(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_52(prefix, __VA_ARGS__)) +#define AU_FE_54(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_53(prefix, __VA_ARGS__)) +#define AU_FE_55(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_54(prefix, __VA_ARGS__)) +#define AU_FE_56(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_55(prefix, __VA_ARGS__)) +#define AU_FE_57(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_56(prefix, __VA_ARGS__)) +#define AU_FE_58(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_57(prefix, __VA_ARGS__)) +#define AU_FE_59(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_58(prefix, __VA_ARGS__)) +#define AU_FE_60(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_59(prefix, __VA_ARGS__)) +#define AU_FE_61(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_60(prefix, __VA_ARGS__)) +#define AU_FE_62(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_61(prefix, __VA_ARGS__)) +#define AU_FE_63(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_62(prefix, __VA_ARGS__)) +#define AU_FE_64(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_63(prefix, __VA_ARGS__)) +#define AU_FE_65(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_64(prefix, __VA_ARGS__)) +#define AU_FE_66(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_65(prefix, __VA_ARGS__)) +#define AU_FE_67(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_66(prefix, __VA_ARGS__)) +#define AU_FE_68(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_67(prefix, __VA_ARGS__)) +#define AU_FE_69(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_68(prefix, __VA_ARGS__)) +#define AU_FE_70(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_69(prefix, __VA_ARGS__)) +#define AU_FE_71(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_70(prefix, __VA_ARGS__)) +#define AU_FE_72(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_71(prefix, __VA_ARGS__)) +#define AU_FE_73(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_72(prefix, __VA_ARGS__)) +#define AU_FE_74(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_73(prefix, __VA_ARGS__)) +#define AU_FE_75(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_74(prefix, __VA_ARGS__)) +#define AU_FE_76(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_75(prefix, __VA_ARGS__)) +#define AU_FE_77(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_76(prefix, __VA_ARGS__)) +#define AU_FE_78(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_77(prefix, __VA_ARGS__)) +#define AU_FE_79(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_78(prefix, __VA_ARGS__)) +#define AU_FE_80(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_79(prefix, __VA_ARGS__)) +#define AU_FE_81(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_80(prefix, __VA_ARGS__)) +#define AU_FE_82(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_81(prefix, __VA_ARGS__)) +#define AU_FE_83(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_82(prefix, __VA_ARGS__)) +#define AU_FE_84(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_83(prefix, __VA_ARGS__)) +#define AU_FE_85(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_84(prefix, __VA_ARGS__)) +#define AU_FE_86(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_85(prefix, __VA_ARGS__)) +#define AU_FE_87(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_86(prefix, __VA_ARGS__)) +#define AU_FE_88(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_87(prefix, __VA_ARGS__)) +#define AU_FE_89(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_88(prefix, __VA_ARGS__)) +#define AU_FE_90(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_89(prefix, __VA_ARGS__)) +#define AU_FE_91(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_90(prefix, __VA_ARGS__)) +#define AU_FE_92(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_91(prefix, __VA_ARGS__)) +#define AU_FE_93(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_92(prefix, __VA_ARGS__)) +#define AU_FE_94(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_93(prefix, __VA_ARGS__)) +#define AU_FE_95(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_94(prefix, __VA_ARGS__)) +#define AU_FE_96(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_95(prefix, __VA_ARGS__)) +#define AU_FE_97(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_96(prefix, __VA_ARGS__)) +#define AU_FE_98(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_97(prefix, __VA_ARGS__)) +#define AU_FE_99(prefix, X0, ...) prefix(X0) AU_FE_EXPAND(AU_FE_98(prefix, __VA_ARGS__)) +#define AU_GET_MACRO(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH(action, ...) AU_FE_EXPAND(AU_GET_MACRO(_whydoweneedthis, __VA_ARGS__, AU_FE_99, AU_FE_98, AU_FE_97, AU_FE_96, AU_FE_95, AU_FE_94, AU_FE_93, AU_FE_92, AU_FE_91, AU_FE_90, AU_FE_89, AU_FE_88, AU_FE_87, AU_FE_86, AU_FE_85, AU_FE_84, AU_FE_83, AU_FE_82, AU_FE_81, AU_FE_80, AU_FE_79, AU_FE_78, AU_FE_77, AU_FE_76, AU_FE_75, AU_FE_74, AU_FE_73, AU_FE_72, AU_FE_71, AU_FE_70, AU_FE_69, AU_FE_68, AU_FE_67, AU_FE_66, AU_FE_65, AU_FE_64, AU_FE_63, AU_FE_62, AU_FE_61, AU_FE_60, AU_FE_59, AU_FE_58, AU_FE_57, AU_FE_56, AU_FE_55, AU_FE_54, AU_FE_53, AU_FE_52, AU_FE_51, AU_FE_50, AU_FE_49, AU_FE_48, AU_FE_47, AU_FE_46, AU_FE_45, AU_FE_44, AU_FE_43, AU_FE_42, AU_FE_41, AU_FE_40, AU_FE_39, AU_FE_38, AU_FE_37, AU_FE_36, AU_FE_35, AU_FE_34, AU_FE_33, AU_FE_32, AU_FE_31, AU_FE_30, AU_FE_29, AU_FE_28, AU_FE_27, AU_FE_26, AU_FE_25, AU_FE_24, AU_FE_23, AU_FE_22, AU_FE_21, AU_FE_20, AU_FE_19, AU_FE_18, AU_FE_17, AU_FE_16, AU_FE_15, AU_FE_14, AU_FE_13, AU_FE_12, AU_FE_11, AU_FE_10, AU_FE_9, AU_FE_8, AU_FE_7, AU_FE_6, AU_FE_5, AU_FE_4, AU_FE_3, AU_FE_2, AU_FE_1, AU_FE_0)(action,__VA_ARGS__)) + +#define AU_FE_0_2(prefix) +#define AU_FE_1_2(prefix, X0, X1) prefix(X0, X1) AU_FE_EXPAND(AU_FE_0_2(prefix)) +#define AU_FE_2_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_0_2(prefix, __VA_ARGS__)) +#define AU_FE_3_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_4_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_2_2(prefix, __VA_ARGS__)) +#define AU_FE_5_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_6_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_4_2(prefix, __VA_ARGS__)) +#define AU_FE_7_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_8_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_6_2(prefix, __VA_ARGS__)) +#define AU_FE_9_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_10_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_8_2(prefix, __VA_ARGS__)) +#define AU_FE_11_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_12_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_10_2(prefix, __VA_ARGS__)) +#define AU_FE_13_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_14_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_12_2(prefix, __VA_ARGS__)) +#define AU_FE_15_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_16_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_14_2(prefix, __VA_ARGS__)) +#define AU_FE_17_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_18_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_16_2(prefix, __VA_ARGS__)) +#define AU_FE_19_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_20_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_18_2(prefix, __VA_ARGS__)) +#define AU_FE_21_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_22_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_20_2(prefix, __VA_ARGS__)) +#define AU_FE_23_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_24_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_22_2(prefix, __VA_ARGS__)) +#define AU_FE_25_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_26_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_24_2(prefix, __VA_ARGS__)) +#define AU_FE_27_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_28_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_26_2(prefix, __VA_ARGS__)) +#define AU_FE_29_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_30_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_28_2(prefix, __VA_ARGS__)) +#define AU_FE_31_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_32_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_30_2(prefix, __VA_ARGS__)) +#define AU_FE_33_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_34_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_32_2(prefix, __VA_ARGS__)) +#define AU_FE_35_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_36_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_34_2(prefix, __VA_ARGS__)) +#define AU_FE_37_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_38_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_36_2(prefix, __VA_ARGS__)) +#define AU_FE_39_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_40_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_38_2(prefix, __VA_ARGS__)) +#define AU_FE_41_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_42_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_40_2(prefix, __VA_ARGS__)) +#define AU_FE_43_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_44_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_42_2(prefix, __VA_ARGS__)) +#define AU_FE_45_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_46_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_44_2(prefix, __VA_ARGS__)) +#define AU_FE_47_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_48_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_46_2(prefix, __VA_ARGS__)) +#define AU_FE_49_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_50_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_48_2(prefix, __VA_ARGS__)) +#define AU_FE_51_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_52_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_50_2(prefix, __VA_ARGS__)) +#define AU_FE_53_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_54_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_52_2(prefix, __VA_ARGS__)) +#define AU_FE_55_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_56_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_54_2(prefix, __VA_ARGS__)) +#define AU_FE_57_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_58_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_56_2(prefix, __VA_ARGS__)) +#define AU_FE_59_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_60_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_58_2(prefix, __VA_ARGS__)) +#define AU_FE_61_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_62_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_60_2(prefix, __VA_ARGS__)) +#define AU_FE_63_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_64_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_62_2(prefix, __VA_ARGS__)) +#define AU_FE_65_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_66_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_64_2(prefix, __VA_ARGS__)) +#define AU_FE_67_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_68_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_66_2(prefix, __VA_ARGS__)) +#define AU_FE_69_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_70_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_68_2(prefix, __VA_ARGS__)) +#define AU_FE_71_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_72_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_70_2(prefix, __VA_ARGS__)) +#define AU_FE_73_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_74_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_72_2(prefix, __VA_ARGS__)) +#define AU_FE_75_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_76_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_74_2(prefix, __VA_ARGS__)) +#define AU_FE_77_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_78_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_76_2(prefix, __VA_ARGS__)) +#define AU_FE_79_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_80_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_78_2(prefix, __VA_ARGS__)) +#define AU_FE_81_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_82_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_80_2(prefix, __VA_ARGS__)) +#define AU_FE_83_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_84_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_82_2(prefix, __VA_ARGS__)) +#define AU_FE_85_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_86_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_84_2(prefix, __VA_ARGS__)) +#define AU_FE_87_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_88_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_86_2(prefix, __VA_ARGS__)) +#define AU_FE_89_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_90_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_88_2(prefix, __VA_ARGS__)) +#define AU_FE_91_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_92_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_90_2(prefix, __VA_ARGS__)) +#define AU_FE_93_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_94_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_92_2(prefix, __VA_ARGS__)) +#define AU_FE_95_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_96_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_94_2(prefix, __VA_ARGS__)) +#define AU_FE_97_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_FE_98_2(prefix, X0, X1, ...) prefix(X0, X1) AU_FE_EXPAND(AU_FE_96_2(prefix, __VA_ARGS__)) +#define AU_FE_99_2(prefix, X0, X1, ...) Macro Jump Error +#define AU_GET_MACRO_2(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_2(action, ...) AU_FE_EXPAND(AU_GET_MACRO_2(_whydoweneedthis, __VA_ARGS__, AU_FE_99_2, AU_FE_98_2, AU_FE_97_2, AU_FE_96_2, AU_FE_95_2, AU_FE_94_2, AU_FE_93_2, AU_FE_92_2, AU_FE_91_2, AU_FE_90_2, AU_FE_89_2, AU_FE_88_2, AU_FE_87_2, AU_FE_86_2, AU_FE_85_2, AU_FE_84_2, AU_FE_83_2, AU_FE_82_2, AU_FE_81_2, AU_FE_80_2, AU_FE_79_2, AU_FE_78_2, AU_FE_77_2, AU_FE_76_2, AU_FE_75_2, AU_FE_74_2, AU_FE_73_2, AU_FE_72_2, AU_FE_71_2, AU_FE_70_2, AU_FE_69_2, AU_FE_68_2, AU_FE_67_2, AU_FE_66_2, AU_FE_65_2, AU_FE_64_2, AU_FE_63_2, AU_FE_62_2, AU_FE_61_2, AU_FE_60_2, AU_FE_59_2, AU_FE_58_2, AU_FE_57_2, AU_FE_56_2, AU_FE_55_2, AU_FE_54_2, AU_FE_53_2, AU_FE_52_2, AU_FE_51_2, AU_FE_50_2, AU_FE_49_2, AU_FE_48_2, AU_FE_47_2, AU_FE_46_2, AU_FE_45_2, AU_FE_44_2, AU_FE_43_2, AU_FE_42_2, AU_FE_41_2, AU_FE_40_2, AU_FE_39_2, AU_FE_38_2, AU_FE_37_2, AU_FE_36_2, AU_FE_35_2, AU_FE_34_2, AU_FE_33_2, AU_FE_32_2, AU_FE_31_2, AU_FE_30_2, AU_FE_29_2, AU_FE_28_2, AU_FE_27_2, AU_FE_26_2, AU_FE_25_2, AU_FE_24_2, AU_FE_23_2, AU_FE_22_2, AU_FE_21_2, AU_FE_20_2, AU_FE_19_2, AU_FE_18_2, AU_FE_17_2, AU_FE_16_2, AU_FE_15_2, AU_FE_14_2, AU_FE_13_2, AU_FE_12_2, AU_FE_11_2, AU_FE_10_2, AU_FE_9_2, AU_FE_8_2, AU_FE_7_2, AU_FE_6_2, AU_FE_5_2, AU_FE_4_2, AU_FE_3_2, AU_FE_2_2, AU_FE_1_2, AU_FE_0_2)(action,__VA_ARGS__)) + +#define AU_FE_0_3(prefix) +#define AU_FE_1_3(prefix, X0, X1, X2) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_0_3(prefix)) +#define AU_FE_2_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_3_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_0_3(prefix, __VA_ARGS__)) +#define AU_FE_4_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_5_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_6_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_3_3(prefix, __VA_ARGS__)) +#define AU_FE_7_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_8_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_9_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_6_3(prefix, __VA_ARGS__)) +#define AU_FE_10_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_11_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_12_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_9_3(prefix, __VA_ARGS__)) +#define AU_FE_13_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_14_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_15_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_12_3(prefix, __VA_ARGS__)) +#define AU_FE_16_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_17_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_18_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_15_3(prefix, __VA_ARGS__)) +#define AU_FE_19_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_20_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_21_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_18_3(prefix, __VA_ARGS__)) +#define AU_FE_22_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_23_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_24_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_21_3(prefix, __VA_ARGS__)) +#define AU_FE_25_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_26_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_27_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_24_3(prefix, __VA_ARGS__)) +#define AU_FE_28_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_29_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_30_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_27_3(prefix, __VA_ARGS__)) +#define AU_FE_31_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_32_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_33_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_30_3(prefix, __VA_ARGS__)) +#define AU_FE_34_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_35_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_36_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_33_3(prefix, __VA_ARGS__)) +#define AU_FE_37_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_38_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_39_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_36_3(prefix, __VA_ARGS__)) +#define AU_FE_40_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_41_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_42_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_39_3(prefix, __VA_ARGS__)) +#define AU_FE_43_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_44_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_45_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_42_3(prefix, __VA_ARGS__)) +#define AU_FE_46_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_47_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_48_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_45_3(prefix, __VA_ARGS__)) +#define AU_FE_49_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_50_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_51_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_48_3(prefix, __VA_ARGS__)) +#define AU_FE_52_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_53_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_54_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_51_3(prefix, __VA_ARGS__)) +#define AU_FE_55_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_56_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_57_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_54_3(prefix, __VA_ARGS__)) +#define AU_FE_58_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_59_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_60_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_57_3(prefix, __VA_ARGS__)) +#define AU_FE_61_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_62_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_63_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_60_3(prefix, __VA_ARGS__)) +#define AU_FE_64_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_65_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_66_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_63_3(prefix, __VA_ARGS__)) +#define AU_FE_67_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_68_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_69_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_66_3(prefix, __VA_ARGS__)) +#define AU_FE_70_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_71_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_72_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_69_3(prefix, __VA_ARGS__)) +#define AU_FE_73_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_74_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_75_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_72_3(prefix, __VA_ARGS__)) +#define AU_FE_76_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_77_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_78_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_75_3(prefix, __VA_ARGS__)) +#define AU_FE_79_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_80_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_81_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_78_3(prefix, __VA_ARGS__)) +#define AU_FE_82_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_83_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_84_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_81_3(prefix, __VA_ARGS__)) +#define AU_FE_85_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_86_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_87_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_84_3(prefix, __VA_ARGS__)) +#define AU_FE_88_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_89_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_90_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_87_3(prefix, __VA_ARGS__)) +#define AU_FE_91_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_92_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_93_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_90_3(prefix, __VA_ARGS__)) +#define AU_FE_94_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_95_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_96_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_93_3(prefix, __VA_ARGS__)) +#define AU_FE_97_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_98_3(prefix, X0, X1, X2, ...) Macro Jump Error +#define AU_FE_99_3(prefix, X0, X1, X2, ...) prefix(X0, X1, X2) AU_FE_EXPAND(AU_FE_96_3(prefix, __VA_ARGS__)) +#define AU_GET_MACRO_3(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_3(action, ...) AU_FE_EXPAND(AU_GET_MACRO_3(_whydoweneedthis, __VA_ARGS__, AU_FE_99_3, AU_FE_98_3, AU_FE_97_3, AU_FE_96_3, AU_FE_95_3, AU_FE_94_3, AU_FE_93_3, AU_FE_92_3, AU_FE_91_3, AU_FE_90_3, AU_FE_89_3, AU_FE_88_3, AU_FE_87_3, AU_FE_86_3, AU_FE_85_3, AU_FE_84_3, AU_FE_83_3, AU_FE_82_3, AU_FE_81_3, AU_FE_80_3, AU_FE_79_3, AU_FE_78_3, AU_FE_77_3, AU_FE_76_3, AU_FE_75_3, AU_FE_74_3, AU_FE_73_3, AU_FE_72_3, AU_FE_71_3, AU_FE_70_3, AU_FE_69_3, AU_FE_68_3, AU_FE_67_3, AU_FE_66_3, AU_FE_65_3, AU_FE_64_3, AU_FE_63_3, AU_FE_62_3, AU_FE_61_3, AU_FE_60_3, AU_FE_59_3, AU_FE_58_3, AU_FE_57_3, AU_FE_56_3, AU_FE_55_3, AU_FE_54_3, AU_FE_53_3, AU_FE_52_3, AU_FE_51_3, AU_FE_50_3, AU_FE_49_3, AU_FE_48_3, AU_FE_47_3, AU_FE_46_3, AU_FE_45_3, AU_FE_44_3, AU_FE_43_3, AU_FE_42_3, AU_FE_41_3, AU_FE_40_3, AU_FE_39_3, AU_FE_38_3, AU_FE_37_3, AU_FE_36_3, AU_FE_35_3, AU_FE_34_3, AU_FE_33_3, AU_FE_32_3, AU_FE_31_3, AU_FE_30_3, AU_FE_29_3, AU_FE_28_3, AU_FE_27_3, AU_FE_26_3, AU_FE_25_3, AU_FE_24_3, AU_FE_23_3, AU_FE_22_3, AU_FE_21_3, AU_FE_20_3, AU_FE_19_3, AU_FE_18_3, AU_FE_17_3, AU_FE_16_3, AU_FE_15_3, AU_FE_14_3, AU_FE_13_3, AU_FE_12_3, AU_FE_11_3, AU_FE_10_3, AU_FE_9_3, AU_FE_8_3, AU_FE_7_3, AU_FE_6_3, AU_FE_5_3, AU_FE_4_3, AU_FE_3_3, AU_FE_2_3, AU_FE_1_3, AU_FE_0_3)(action,__VA_ARGS__)) + +#define AU_FE_0_4(prefix) +#define AU_FE_1_4(prefix, X0, X1, X2, X3) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_0_4(prefix)) +#define AU_FE_2_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_3_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_4_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_0_4(prefix, __VA_ARGS__)) +#define AU_FE_5_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_6_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_7_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_8_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_4_4(prefix, __VA_ARGS__)) +#define AU_FE_9_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_10_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_11_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_12_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_8_4(prefix, __VA_ARGS__)) +#define AU_FE_13_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_14_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_15_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_16_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_12_4(prefix, __VA_ARGS__)) +#define AU_FE_17_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_18_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_19_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_20_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_16_4(prefix, __VA_ARGS__)) +#define AU_FE_21_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_22_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_23_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_24_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_20_4(prefix, __VA_ARGS__)) +#define AU_FE_25_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_26_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_27_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_28_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_24_4(prefix, __VA_ARGS__)) +#define AU_FE_29_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_30_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_31_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_32_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_28_4(prefix, __VA_ARGS__)) +#define AU_FE_33_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_34_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_35_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_36_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_32_4(prefix, __VA_ARGS__)) +#define AU_FE_37_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_38_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_39_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_40_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_36_4(prefix, __VA_ARGS__)) +#define AU_FE_41_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_42_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_43_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_44_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_40_4(prefix, __VA_ARGS__)) +#define AU_FE_45_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_46_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_47_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_48_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_44_4(prefix, __VA_ARGS__)) +#define AU_FE_49_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_50_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_51_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_52_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_48_4(prefix, __VA_ARGS__)) +#define AU_FE_53_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_54_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_55_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_56_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_52_4(prefix, __VA_ARGS__)) +#define AU_FE_57_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_58_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_59_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_60_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_56_4(prefix, __VA_ARGS__)) +#define AU_FE_61_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_62_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_63_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_64_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_60_4(prefix, __VA_ARGS__)) +#define AU_FE_65_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_66_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_67_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_68_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_64_4(prefix, __VA_ARGS__)) +#define AU_FE_69_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_70_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_71_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_72_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_68_4(prefix, __VA_ARGS__)) +#define AU_FE_73_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_74_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_75_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_76_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_72_4(prefix, __VA_ARGS__)) +#define AU_FE_77_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_78_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_79_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_80_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_76_4(prefix, __VA_ARGS__)) +#define AU_FE_81_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_82_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_83_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_84_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_80_4(prefix, __VA_ARGS__)) +#define AU_FE_85_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_86_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_87_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_88_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_84_4(prefix, __VA_ARGS__)) +#define AU_FE_89_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_90_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_91_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_92_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_88_4(prefix, __VA_ARGS__)) +#define AU_FE_93_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_94_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_95_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_96_4(prefix, X0, X1, X2, X3, ...) prefix(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_92_4(prefix, __VA_ARGS__)) +#define AU_FE_97_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_98_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_FE_99_4(prefix, X0, X1, X2, X3, ...) Macro Jump Error +#define AU_GET_MACRO_4(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_4(action, ...) AU_FE_EXPAND(AU_GET_MACRO_4(_whydoweneedthis, __VA_ARGS__, AU_FE_99_4, AU_FE_98_4, AU_FE_97_4, AU_FE_96_4, AU_FE_95_4, AU_FE_94_4, AU_FE_93_4, AU_FE_92_4, AU_FE_91_4, AU_FE_90_4, AU_FE_89_4, AU_FE_88_4, AU_FE_87_4, AU_FE_86_4, AU_FE_85_4, AU_FE_84_4, AU_FE_83_4, AU_FE_82_4, AU_FE_81_4, AU_FE_80_4, AU_FE_79_4, AU_FE_78_4, AU_FE_77_4, AU_FE_76_4, AU_FE_75_4, AU_FE_74_4, AU_FE_73_4, AU_FE_72_4, AU_FE_71_4, AU_FE_70_4, AU_FE_69_4, AU_FE_68_4, AU_FE_67_4, AU_FE_66_4, AU_FE_65_4, AU_FE_64_4, AU_FE_63_4, AU_FE_62_4, AU_FE_61_4, AU_FE_60_4, AU_FE_59_4, AU_FE_58_4, AU_FE_57_4, AU_FE_56_4, AU_FE_55_4, AU_FE_54_4, AU_FE_53_4, AU_FE_52_4, AU_FE_51_4, AU_FE_50_4, AU_FE_49_4, AU_FE_48_4, AU_FE_47_4, AU_FE_46_4, AU_FE_45_4, AU_FE_44_4, AU_FE_43_4, AU_FE_42_4, AU_FE_41_4, AU_FE_40_4, AU_FE_39_4, AU_FE_38_4, AU_FE_37_4, AU_FE_36_4, AU_FE_35_4, AU_FE_34_4, AU_FE_33_4, AU_FE_32_4, AU_FE_31_4, AU_FE_30_4, AU_FE_29_4, AU_FE_28_4, AU_FE_27_4, AU_FE_26_4, AU_FE_25_4, AU_FE_24_4, AU_FE_23_4, AU_FE_22_4, AU_FE_21_4, AU_FE_20_4, AU_FE_19_4, AU_FE_18_4, AU_FE_17_4, AU_FE_16_4, AU_FE_15_4, AU_FE_14_4, AU_FE_13_4, AU_FE_12_4, AU_FE_11_4, AU_FE_10_4, AU_FE_9_4, AU_FE_8_4, AU_FE_7_4, AU_FE_6_4, AU_FE_5_4, AU_FE_4_4, AU_FE_3_4, AU_FE_2_4, AU_FE_1_4, AU_FE_0_4)(action,__VA_ARGS__)) + +#define AU_FE_0_5(prefix) +#define AU_FE_1_5(prefix, X0, X1, X2, X3, X4) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_0_5(prefix)) +#define AU_FE_2_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_3_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_4_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_5_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_0_5(prefix, __VA_ARGS__)) +#define AU_FE_6_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_7_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_8_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_9_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_10_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_5_5(prefix, __VA_ARGS__)) +#define AU_FE_11_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_12_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_13_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_14_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_15_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_10_5(prefix, __VA_ARGS__)) +#define AU_FE_16_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_17_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_18_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_19_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_20_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_15_5(prefix, __VA_ARGS__)) +#define AU_FE_21_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_22_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_23_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_24_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_25_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_20_5(prefix, __VA_ARGS__)) +#define AU_FE_26_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_27_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_28_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_29_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_30_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_25_5(prefix, __VA_ARGS__)) +#define AU_FE_31_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_32_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_33_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_34_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_35_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_30_5(prefix, __VA_ARGS__)) +#define AU_FE_36_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_37_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_38_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_39_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_40_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_35_5(prefix, __VA_ARGS__)) +#define AU_FE_41_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_42_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_43_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_44_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_45_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_40_5(prefix, __VA_ARGS__)) +#define AU_FE_46_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_47_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_48_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_49_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_50_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_45_5(prefix, __VA_ARGS__)) +#define AU_FE_51_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_52_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_53_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_54_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_55_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_50_5(prefix, __VA_ARGS__)) +#define AU_FE_56_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_57_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_58_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_59_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_60_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_55_5(prefix, __VA_ARGS__)) +#define AU_FE_61_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_62_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_63_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_64_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_65_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_60_5(prefix, __VA_ARGS__)) +#define AU_FE_66_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_67_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_68_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_69_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_70_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_65_5(prefix, __VA_ARGS__)) +#define AU_FE_71_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_72_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_73_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_74_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_75_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_70_5(prefix, __VA_ARGS__)) +#define AU_FE_76_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_77_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_78_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_79_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_80_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_75_5(prefix, __VA_ARGS__)) +#define AU_FE_81_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_82_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_83_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_84_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_85_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_80_5(prefix, __VA_ARGS__)) +#define AU_FE_86_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_87_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_88_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_89_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_90_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_85_5(prefix, __VA_ARGS__)) +#define AU_FE_91_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_92_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_93_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_94_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_95_5(prefix, X0, X1, X2, X3, X4, ...) prefix(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_90_5(prefix, __VA_ARGS__)) +#define AU_FE_96_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_97_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_98_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_FE_99_5(prefix, X0, X1, X2, X3, X4, ...) Macro Jump Error +#define AU_GET_MACRO_5(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_5(action, ...) AU_FE_EXPAND(AU_GET_MACRO_5(_whydoweneedthis, __VA_ARGS__, AU_FE_99_5, AU_FE_98_5, AU_FE_97_5, AU_FE_96_5, AU_FE_95_5, AU_FE_94_5, AU_FE_93_5, AU_FE_92_5, AU_FE_91_5, AU_FE_90_5, AU_FE_89_5, AU_FE_88_5, AU_FE_87_5, AU_FE_86_5, AU_FE_85_5, AU_FE_84_5, AU_FE_83_5, AU_FE_82_5, AU_FE_81_5, AU_FE_80_5, AU_FE_79_5, AU_FE_78_5, AU_FE_77_5, AU_FE_76_5, AU_FE_75_5, AU_FE_74_5, AU_FE_73_5, AU_FE_72_5, AU_FE_71_5, AU_FE_70_5, AU_FE_69_5, AU_FE_68_5, AU_FE_67_5, AU_FE_66_5, AU_FE_65_5, AU_FE_64_5, AU_FE_63_5, AU_FE_62_5, AU_FE_61_5, AU_FE_60_5, AU_FE_59_5, AU_FE_58_5, AU_FE_57_5, AU_FE_56_5, AU_FE_55_5, AU_FE_54_5, AU_FE_53_5, AU_FE_52_5, AU_FE_51_5, AU_FE_50_5, AU_FE_49_5, AU_FE_48_5, AU_FE_47_5, AU_FE_46_5, AU_FE_45_5, AU_FE_44_5, AU_FE_43_5, AU_FE_42_5, AU_FE_41_5, AU_FE_40_5, AU_FE_39_5, AU_FE_38_5, AU_FE_37_5, AU_FE_36_5, AU_FE_35_5, AU_FE_34_5, AU_FE_33_5, AU_FE_32_5, AU_FE_31_5, AU_FE_30_5, AU_FE_29_5, AU_FE_28_5, AU_FE_27_5, AU_FE_26_5, AU_FE_25_5, AU_FE_24_5, AU_FE_23_5, AU_FE_22_5, AU_FE_21_5, AU_FE_20_5, AU_FE_19_5, AU_FE_18_5, AU_FE_17_5, AU_FE_16_5, AU_FE_15_5, AU_FE_14_5, AU_FE_13_5, AU_FE_12_5, AU_FE_11_5, AU_FE_10_5, AU_FE_9_5, AU_FE_8_5, AU_FE_7_5, AU_FE_6_5, AU_FE_5_5, AU_FE_4_5, AU_FE_3_5, AU_FE_2_5, AU_FE_1_5, AU_FE_0_5)(action,__VA_ARGS__)) + +#define AU_FE_0_6(prefix) +#define AU_FE_1_6(prefix, X0, X1, X2, X3, X4, X5) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_0_6(prefix)) +#define AU_FE_2_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_3_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_4_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_5_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_6_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_0_6(prefix, __VA_ARGS__)) +#define AU_FE_7_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_8_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_9_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_10_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_11_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_12_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_6_6(prefix, __VA_ARGS__)) +#define AU_FE_13_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_14_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_15_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_16_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_17_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_18_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_12_6(prefix, __VA_ARGS__)) +#define AU_FE_19_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_20_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_21_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_22_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_23_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_24_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_18_6(prefix, __VA_ARGS__)) +#define AU_FE_25_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_26_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_27_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_28_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_29_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_30_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_24_6(prefix, __VA_ARGS__)) +#define AU_FE_31_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_32_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_33_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_34_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_35_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_36_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_30_6(prefix, __VA_ARGS__)) +#define AU_FE_37_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_38_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_39_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_40_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_41_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_42_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_36_6(prefix, __VA_ARGS__)) +#define AU_FE_43_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_44_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_45_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_46_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_47_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_48_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_42_6(prefix, __VA_ARGS__)) +#define AU_FE_49_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_50_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_51_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_52_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_53_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_54_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_48_6(prefix, __VA_ARGS__)) +#define AU_FE_55_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_56_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_57_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_58_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_59_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_60_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_54_6(prefix, __VA_ARGS__)) +#define AU_FE_61_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_62_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_63_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_64_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_65_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_66_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_60_6(prefix, __VA_ARGS__)) +#define AU_FE_67_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_68_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_69_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_70_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_71_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_72_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_66_6(prefix, __VA_ARGS__)) +#define AU_FE_73_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_74_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_75_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_76_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_77_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_78_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_72_6(prefix, __VA_ARGS__)) +#define AU_FE_79_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_80_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_81_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_82_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_83_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_84_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_78_6(prefix, __VA_ARGS__)) +#define AU_FE_85_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_86_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_87_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_88_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_89_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_90_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_84_6(prefix, __VA_ARGS__)) +#define AU_FE_91_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_92_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_93_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_94_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_95_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_96_6(prefix, X0, X1, X2, X3, X4, X5, ...) prefix(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_90_6(prefix, __VA_ARGS__)) +#define AU_FE_97_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_98_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_FE_99_6(prefix, X0, X1, X2, X3, X4, X5, ...) Macro Jump Error +#define AU_GET_MACRO_6(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_6(action, ...) AU_FE_EXPAND(AU_GET_MACRO_6(_whydoweneedthis, __VA_ARGS__, AU_FE_99_6, AU_FE_98_6, AU_FE_97_6, AU_FE_96_6, AU_FE_95_6, AU_FE_94_6, AU_FE_93_6, AU_FE_92_6, AU_FE_91_6, AU_FE_90_6, AU_FE_89_6, AU_FE_88_6, AU_FE_87_6, AU_FE_86_6, AU_FE_85_6, AU_FE_84_6, AU_FE_83_6, AU_FE_82_6, AU_FE_81_6, AU_FE_80_6, AU_FE_79_6, AU_FE_78_6, AU_FE_77_6, AU_FE_76_6, AU_FE_75_6, AU_FE_74_6, AU_FE_73_6, AU_FE_72_6, AU_FE_71_6, AU_FE_70_6, AU_FE_69_6, AU_FE_68_6, AU_FE_67_6, AU_FE_66_6, AU_FE_65_6, AU_FE_64_6, AU_FE_63_6, AU_FE_62_6, AU_FE_61_6, AU_FE_60_6, AU_FE_59_6, AU_FE_58_6, AU_FE_57_6, AU_FE_56_6, AU_FE_55_6, AU_FE_54_6, AU_FE_53_6, AU_FE_52_6, AU_FE_51_6, AU_FE_50_6, AU_FE_49_6, AU_FE_48_6, AU_FE_47_6, AU_FE_46_6, AU_FE_45_6, AU_FE_44_6, AU_FE_43_6, AU_FE_42_6, AU_FE_41_6, AU_FE_40_6, AU_FE_39_6, AU_FE_38_6, AU_FE_37_6, AU_FE_36_6, AU_FE_35_6, AU_FE_34_6, AU_FE_33_6, AU_FE_32_6, AU_FE_31_6, AU_FE_30_6, AU_FE_29_6, AU_FE_28_6, AU_FE_27_6, AU_FE_26_6, AU_FE_25_6, AU_FE_24_6, AU_FE_23_6, AU_FE_22_6, AU_FE_21_6, AU_FE_20_6, AU_FE_19_6, AU_FE_18_6, AU_FE_17_6, AU_FE_16_6, AU_FE_15_6, AU_FE_14_6, AU_FE_13_6, AU_FE_12_6, AU_FE_11_6, AU_FE_10_6, AU_FE_9_6, AU_FE_8_6, AU_FE_7_6, AU_FE_6_6, AU_FE_5_6, AU_FE_4_6, AU_FE_3_6, AU_FE_2_6, AU_FE_1_6, AU_FE_0_6)(action,__VA_ARGS__)) + +#define AU_FE_0_7(prefix) +#define AU_FE_1_7(prefix, X0, X1, X2, X3, X4, X5, X6) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_0_7(prefix)) +#define AU_FE_2_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_3_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_4_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_5_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_6_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_7_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_0_7(prefix, __VA_ARGS__)) +#define AU_FE_8_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_9_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_10_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_11_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_12_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_13_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_14_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_7_7(prefix, __VA_ARGS__)) +#define AU_FE_15_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_16_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_17_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_18_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_19_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_20_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_21_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_14_7(prefix, __VA_ARGS__)) +#define AU_FE_22_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_23_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_24_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_25_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_26_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_27_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_28_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_21_7(prefix, __VA_ARGS__)) +#define AU_FE_29_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_30_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_31_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_32_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_33_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_34_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_35_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_28_7(prefix, __VA_ARGS__)) +#define AU_FE_36_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_37_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_38_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_39_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_40_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_41_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_42_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_35_7(prefix, __VA_ARGS__)) +#define AU_FE_43_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_44_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_45_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_46_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_47_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_48_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_49_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_42_7(prefix, __VA_ARGS__)) +#define AU_FE_50_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_51_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_52_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_53_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_54_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_55_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_56_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_49_7(prefix, __VA_ARGS__)) +#define AU_FE_57_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_58_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_59_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_60_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_61_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_62_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_63_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_56_7(prefix, __VA_ARGS__)) +#define AU_FE_64_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_65_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_66_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_67_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_68_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_69_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_70_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_63_7(prefix, __VA_ARGS__)) +#define AU_FE_71_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_72_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_73_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_74_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_75_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_76_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_77_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_70_7(prefix, __VA_ARGS__)) +#define AU_FE_78_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_79_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_80_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_81_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_82_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_83_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_84_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_77_7(prefix, __VA_ARGS__)) +#define AU_FE_85_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_86_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_87_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_88_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_89_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_90_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_91_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_84_7(prefix, __VA_ARGS__)) +#define AU_FE_92_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_93_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_94_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_95_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_96_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_97_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_FE_98_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) prefix(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_91_7(prefix, __VA_ARGS__)) +#define AU_FE_99_7(prefix, X0, X1, X2, X3, X4, X5, X6, ...) Macro Jump Error +#define AU_GET_MACRO_7(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_7(action, ...) AU_FE_EXPAND(AU_GET_MACRO_7(_whydoweneedthis, __VA_ARGS__, AU_FE_99_7, AU_FE_98_7, AU_FE_97_7, AU_FE_96_7, AU_FE_95_7, AU_FE_94_7, AU_FE_93_7, AU_FE_92_7, AU_FE_91_7, AU_FE_90_7, AU_FE_89_7, AU_FE_88_7, AU_FE_87_7, AU_FE_86_7, AU_FE_85_7, AU_FE_84_7, AU_FE_83_7, AU_FE_82_7, AU_FE_81_7, AU_FE_80_7, AU_FE_79_7, AU_FE_78_7, AU_FE_77_7, AU_FE_76_7, AU_FE_75_7, AU_FE_74_7, AU_FE_73_7, AU_FE_72_7, AU_FE_71_7, AU_FE_70_7, AU_FE_69_7, AU_FE_68_7, AU_FE_67_7, AU_FE_66_7, AU_FE_65_7, AU_FE_64_7, AU_FE_63_7, AU_FE_62_7, AU_FE_61_7, AU_FE_60_7, AU_FE_59_7, AU_FE_58_7, AU_FE_57_7, AU_FE_56_7, AU_FE_55_7, AU_FE_54_7, AU_FE_53_7, AU_FE_52_7, AU_FE_51_7, AU_FE_50_7, AU_FE_49_7, AU_FE_48_7, AU_FE_47_7, AU_FE_46_7, AU_FE_45_7, AU_FE_44_7, AU_FE_43_7, AU_FE_42_7, AU_FE_41_7, AU_FE_40_7, AU_FE_39_7, AU_FE_38_7, AU_FE_37_7, AU_FE_36_7, AU_FE_35_7, AU_FE_34_7, AU_FE_33_7, AU_FE_32_7, AU_FE_31_7, AU_FE_30_7, AU_FE_29_7, AU_FE_28_7, AU_FE_27_7, AU_FE_26_7, AU_FE_25_7, AU_FE_24_7, AU_FE_23_7, AU_FE_22_7, AU_FE_21_7, AU_FE_20_7, AU_FE_19_7, AU_FE_18_7, AU_FE_17_7, AU_FE_16_7, AU_FE_15_7, AU_FE_14_7, AU_FE_13_7, AU_FE_12_7, AU_FE_11_7, AU_FE_10_7, AU_FE_9_7, AU_FE_8_7, AU_FE_7_7, AU_FE_6_7, AU_FE_5_7, AU_FE_4_7, AU_FE_3_7, AU_FE_2_7, AU_FE_1_7, AU_FE_0_7)(action,__VA_ARGS__)) + +#define AU_FE_0_8(prefix) +#define AU_FE_1_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_0_8(prefix)) +#define AU_FE_2_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_3_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_4_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_5_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_6_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_7_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_8_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_0_8(prefix, __VA_ARGS__)) +#define AU_FE_9_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_10_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_11_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_12_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_13_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_14_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_15_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_16_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_8_8(prefix, __VA_ARGS__)) +#define AU_FE_17_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_18_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_19_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_20_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_21_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_22_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_23_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_24_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_16_8(prefix, __VA_ARGS__)) +#define AU_FE_25_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_26_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_27_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_28_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_29_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_30_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_31_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_32_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_24_8(prefix, __VA_ARGS__)) +#define AU_FE_33_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_34_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_35_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_36_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_37_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_38_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_39_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_40_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_32_8(prefix, __VA_ARGS__)) +#define AU_FE_41_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_42_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_43_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_44_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_45_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_46_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_47_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_48_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_40_8(prefix, __VA_ARGS__)) +#define AU_FE_49_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_50_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_51_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_52_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_53_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_54_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_55_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_56_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_48_8(prefix, __VA_ARGS__)) +#define AU_FE_57_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_58_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_59_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_60_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_61_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_62_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_63_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_64_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_56_8(prefix, __VA_ARGS__)) +#define AU_FE_65_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_66_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_67_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_68_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_69_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_70_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_71_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_72_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_64_8(prefix, __VA_ARGS__)) +#define AU_FE_73_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_74_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_75_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_76_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_77_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_78_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_79_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_80_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_72_8(prefix, __VA_ARGS__)) +#define AU_FE_81_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_82_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_83_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_84_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_85_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_86_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_87_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_88_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_80_8(prefix, __VA_ARGS__)) +#define AU_FE_89_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_90_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_91_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_92_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_93_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_94_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_95_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_96_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_88_8(prefix, __VA_ARGS__)) +#define AU_FE_97_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_98_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_FE_99_8(prefix, X0, X1, X2, X3, X4, X5, X6, X7, ...) Macro Jump Error +#define AU_GET_MACRO_8(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_8(action, ...) AU_FE_EXPAND(AU_GET_MACRO_8(_whydoweneedthis, __VA_ARGS__, AU_FE_99_8, AU_FE_98_8, AU_FE_97_8, AU_FE_96_8, AU_FE_95_8, AU_FE_94_8, AU_FE_93_8, AU_FE_92_8, AU_FE_91_8, AU_FE_90_8, AU_FE_89_8, AU_FE_88_8, AU_FE_87_8, AU_FE_86_8, AU_FE_85_8, AU_FE_84_8, AU_FE_83_8, AU_FE_82_8, AU_FE_81_8, AU_FE_80_8, AU_FE_79_8, AU_FE_78_8, AU_FE_77_8, AU_FE_76_8, AU_FE_75_8, AU_FE_74_8, AU_FE_73_8, AU_FE_72_8, AU_FE_71_8, AU_FE_70_8, AU_FE_69_8, AU_FE_68_8, AU_FE_67_8, AU_FE_66_8, AU_FE_65_8, AU_FE_64_8, AU_FE_63_8, AU_FE_62_8, AU_FE_61_8, AU_FE_60_8, AU_FE_59_8, AU_FE_58_8, AU_FE_57_8, AU_FE_56_8, AU_FE_55_8, AU_FE_54_8, AU_FE_53_8, AU_FE_52_8, AU_FE_51_8, AU_FE_50_8, AU_FE_49_8, AU_FE_48_8, AU_FE_47_8, AU_FE_46_8, AU_FE_45_8, AU_FE_44_8, AU_FE_43_8, AU_FE_42_8, AU_FE_41_8, AU_FE_40_8, AU_FE_39_8, AU_FE_38_8, AU_FE_37_8, AU_FE_36_8, AU_FE_35_8, AU_FE_34_8, AU_FE_33_8, AU_FE_32_8, AU_FE_31_8, AU_FE_30_8, AU_FE_29_8, AU_FE_28_8, AU_FE_27_8, AU_FE_26_8, AU_FE_25_8, AU_FE_24_8, AU_FE_23_8, AU_FE_22_8, AU_FE_21_8, AU_FE_20_8, AU_FE_19_8, AU_FE_18_8, AU_FE_17_8, AU_FE_16_8, AU_FE_15_8, AU_FE_14_8, AU_FE_13_8, AU_FE_12_8, AU_FE_11_8, AU_FE_10_8, AU_FE_9_8, AU_FE_8_8, AU_FE_7_8, AU_FE_6_8, AU_FE_5_8, AU_FE_4_8, AU_FE_3_8, AU_FE_2_8, AU_FE_1_8, AU_FE_0_8)(action,__VA_ARGS__)) + +#define AU_FE_0_9(prefix) +#define AU_FE_1_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_0_9(prefix)) +#define AU_FE_2_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_3_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_4_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_5_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_6_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_7_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_8_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_9_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_0_9(prefix, __VA_ARGS__)) +#define AU_FE_10_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_11_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_12_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_13_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_14_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_15_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_16_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_17_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_18_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_9_9(prefix, __VA_ARGS__)) +#define AU_FE_19_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_20_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_21_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_22_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_23_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_24_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_25_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_26_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_27_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_18_9(prefix, __VA_ARGS__)) +#define AU_FE_28_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_29_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_30_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_31_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_32_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_33_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_34_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_35_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_36_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_27_9(prefix, __VA_ARGS__)) +#define AU_FE_37_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_38_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_39_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_40_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_41_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_42_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_43_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_44_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_45_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_36_9(prefix, __VA_ARGS__)) +#define AU_FE_46_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_47_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_48_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_49_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_50_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_51_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_52_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_53_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_54_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_45_9(prefix, __VA_ARGS__)) +#define AU_FE_55_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_56_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_57_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_58_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_59_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_60_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_61_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_62_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_63_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_54_9(prefix, __VA_ARGS__)) +#define AU_FE_64_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_65_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_66_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_67_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_68_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_69_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_70_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_71_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_72_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_63_9(prefix, __VA_ARGS__)) +#define AU_FE_73_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_74_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_75_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_76_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_77_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_78_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_79_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_80_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_81_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_72_9(prefix, __VA_ARGS__)) +#define AU_FE_82_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_83_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_84_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_85_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_86_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_87_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_88_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_89_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_90_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_81_9(prefix, __VA_ARGS__)) +#define AU_FE_91_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_92_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_93_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_94_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_95_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_96_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_97_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_98_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) Macro Jump Error +#define AU_FE_99_9(prefix, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) prefix(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_90_9(prefix, __VA_ARGS__)) +#define AU_GET_MACRO_9(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, NAME,...) NAME +#define AU_FOR_EACH_9(action, ...) AU_FE_EXPAND(AU_GET_MACRO_9(_whydoweneedthis, __VA_ARGS__, AU_FE_99_9, AU_FE_98_9, AU_FE_97_9, AU_FE_96_9, AU_FE_95_9, AU_FE_94_9, AU_FE_93_9, AU_FE_92_9, AU_FE_91_9, AU_FE_90_9, AU_FE_89_9, AU_FE_88_9, AU_FE_87_9, AU_FE_86_9, AU_FE_85_9, AU_FE_84_9, AU_FE_83_9, AU_FE_82_9, AU_FE_81_9, AU_FE_80_9, AU_FE_79_9, AU_FE_78_9, AU_FE_77_9, AU_FE_76_9, AU_FE_75_9, AU_FE_74_9, AU_FE_73_9, AU_FE_72_9, AU_FE_71_9, AU_FE_70_9, AU_FE_69_9, AU_FE_68_9, AU_FE_67_9, AU_FE_66_9, AU_FE_65_9, AU_FE_64_9, AU_FE_63_9, AU_FE_62_9, AU_FE_61_9, AU_FE_60_9, AU_FE_59_9, AU_FE_58_9, AU_FE_57_9, AU_FE_56_9, AU_FE_55_9, AU_FE_54_9, AU_FE_53_9, AU_FE_52_9, AU_FE_51_9, AU_FE_50_9, AU_FE_49_9, AU_FE_48_9, AU_FE_47_9, AU_FE_46_9, AU_FE_45_9, AU_FE_44_9, AU_FE_43_9, AU_FE_42_9, AU_FE_41_9, AU_FE_40_9, AU_FE_39_9, AU_FE_38_9, AU_FE_37_9, AU_FE_36_9, AU_FE_35_9, AU_FE_34_9, AU_FE_33_9, AU_FE_32_9, AU_FE_31_9, AU_FE_30_9, AU_FE_29_9, AU_FE_28_9, AU_FE_27_9, AU_FE_26_9, AU_FE_25_9, AU_FE_24_9, AU_FE_23_9, AU_FE_22_9, AU_FE_21_9, AU_FE_20_9, AU_FE_19_9, AU_FE_18_9, AU_FE_17_9, AU_FE_16_9, AU_FE_15_9, AU_FE_14_9, AU_FE_13_9, AU_FE_12_9, AU_FE_11_9, AU_FE_10_9, AU_FE_9_9, AU_FE_8_9, AU_FE_7_9, AU_FE_6_9, AU_FE_5_9, AU_FE_4_9, AU_FE_3_9, AU_FE_2_9, AU_FE_1_9, AU_FE_0_9)(action,__VA_ARGS__)) + diff --git a/Include/AuroraInterfaces.hpp b/Include/AuroraInterfaces.hpp new file mode 100644 index 00000000..7e27f470 --- /dev/null +++ b/Include/AuroraInterfaces.hpp @@ -0,0 +1,31 @@ +/*** + Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. + + File: AuroraInterfaces.hpp + Date: 2021-10-6 + Author: Reece +***/ +#pragma once + +#define AUI_METHOD_IMPL(ret, name, params) virtual ret name(AU_FOR_EACH_2(AU_EMIT_BOTH, AU_STRIP_BRACKETS(params))) = 0; +#define AUI_METHOD_FUNCTIONAL_IMPL(ret, name, params) \ + AuFunction name ## Functional; \ + virtual ret name (AU_FOR_EACH_2(AU_EMIT_BOTH, AU_STRIP_BRACKETS(params))) override \ + { \ + return name ## Functional(AU_FOR_EACH_2(AU_EMIT_SECOND, AU_STRIP_BRACKETS(params))); \ + } + +#define AUI_METHOD_FUNCTIONAL_FWD(ret, name, params) \ + AuFunction name ## Functional; \ + virtual ret name (AU_FOR_EACH_2(AU_EMIT_BOTH, AU_STRIP_BRACKETS(params))) override; + +#define AUI_DEFINE_INTERFACE_START_STRUCT(name, list) struct name { AU_FOR_EACH_3(AUI_METHOD_IMPL, list) }; +#define AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_FWD(name, list) struct nameFunctional : name { AU_FOR_EACH_3(AUI_METHOD_FUNCTIONAL_FWD, list) }; +#define AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_IMPL(name, list) struct nameFunctional : name { AU_FOR_EACH_3(AUI_METHOD_FUNCTIONAL_IMPL, list) }; + + +#define AUI_PARAMS(...) AU_BRACKET_SCOPE(__VA_ARGS__) +#define AUI_METHODS(...) AU_BRACKET_SCOPE(__VA_ARGS__) +#define AUI_METHOD(...) AU_BRACKET_SCOPE(__VA_ARGS__) +#define AUI_INTERFACE_FWD(name, list) AUI_DEFINE_INTERFACE_START_STRUCT(name, list) AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_FWD(name, list) +#define AUI_INTERFACE_IMPL(name, list) AUI_DEFINE_INTERFACE_START_STRUCT(name, list) AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_IMPL(name, list) diff --git a/Include/AuroraMacros.hpp b/Include/AuroraMacros.hpp index a7b96f24..45233562 100644 --- a/Include/AuroraMacros.hpp +++ b/Include/AuroraMacros.hpp @@ -105,3 +105,13 @@ name ## Shared_t name ## Shared(T... args) \ #define AU_FWD(var) std::forward(var) #define AU_ITERATE_ARRAY(index, arry) AuUInt index = 0; index < AuArraySize(arry); index++ + +#define AU_STRIP_BRACKETS_IMPL(X) X +#define AU_STRIP_BRACKETS(X) AU_STRIP_BRACKETS_IMPL(AU_BRACKET_SCOPE X) + +#define AU_EMIT_FIRST(a, b) a +#define AU_EMIT_SECOND(a, b) b +#define AU_EMIT_BOTH(a, b) a b + +#include "AuroraInterfaces.hpp" +#include "AuroraForEach.hpp" \ No newline at end of file diff --git a/Source/Async/WorkItem.cpp b/Source/Async/WorkItem.cpp index b0ecd12f..4e2fc767 100644 --- a/Source/Async/WorkItem.cpp +++ b/Source/Async/WorkItem.cpp @@ -289,13 +289,30 @@ namespace Aurora::Async void WorkItem::SendOff() { - static_cast(GetAsyncApp())->Run(worker_, this->shared_from_this()); + if (!task_) + { + // If we aren't actually calling a task interface, we may as well just dispatch objects waiting on us from here + RunAsync(); + } + else + { + static_cast(GetAsyncApp())->Run(worker_, this->shared_from_this()); + } } AUKN_SYM AuSPtr NewWorkItem(const WorkerId_t &worker, const AuSPtr &task, bool supportsBlocking) { + if (!task) + { + return {}; + } return AuMakeShared(worker, task, supportsBlocking); } + + AUKN_SYM AuSPtr NewFence() + { + return AuMakeShared(WorkerId_t{}, AuSPtr{}, true); + } void *WorkItem::GetPrivateData() {