[*] Use the public AuroraForEach/Interfaces implementation

This commit is contained in:
Reece Wilson 2021-10-24 13:04:22 +01:00
parent 51e3944171
commit b1b5f417a7
5 changed files with 5 additions and 808 deletions

View File

@ -7,7 +7,8 @@
"staticImpDefines": "AURORA_ENGINE_KERNEL_STATIC",
"defines": [],
"soft-depends": ["wxwidgets", "glm"],
"depends": ["mimalloc", "uuid", "fmt", "json", "bzip2", "ltc", "o1heap", "zstd", "zlib", "lz4", "mbedtls"],
"depends": ["AuroraInterfaces", "mimalloc", "uuid", "fmt", "json", "bzip2", "ltc", "o1heap", "zstd", "zlib", "lz4", "mbedtls"],
"include-depends": ["fmt", "uuid", "AuroraInterfaces"],
"features": ["guess-platform-code"],
"linkSources": "Source/Alloc.cpp",
"actions": [

View File

@ -17,6 +17,9 @@
#endif
#endif
#include <AuroraForEach.hpp>
#include <AuroraInterfaces.hpp>
#include "../AuroraMacros.hpp"
#include <utilitY>

View File

@ -1,715 +0,0 @@
/**
* X-Macro alternative. Defines AU_FOR_EACH_N(expandable, ...args*N)
* Autogenerated by forEach.js; do not modify"
*/
#define AU_FE_EXPAND(exp) exp
#define AU_FE_ERROR(exp) ERROR. CHECK PARAMETER COUNT. DID YOU FORGET A COMMA?
#define AU_FE_0(expandable)
#define AU_FE_1(expandable, X0) expandable(X0) AU_FE_EXPAND(AU_FE_0(expandable))
#define AU_FE_1_FIRST(first, second)
#define AU_FE_2(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_1(expandable, __VA_ARGS__))
#define AU_FE_3_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_1(second, __VA_ARGS__))
#define AU_FE_3(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_2(expandable, __VA_ARGS__))
#define AU_FE_4_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_2(second, __VA_ARGS__))
#define AU_FE_4(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_3(expandable, __VA_ARGS__))
#define AU_FE_5_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_3(second, __VA_ARGS__))
#define AU_FE_5(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_4(expandable, __VA_ARGS__))
#define AU_FE_6_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_4(second, __VA_ARGS__))
#define AU_FE_6(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_5(expandable, __VA_ARGS__))
#define AU_FE_7_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_5(second, __VA_ARGS__))
#define AU_FE_7(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_6(expandable, __VA_ARGS__))
#define AU_FE_8_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_6(second, __VA_ARGS__))
#define AU_FE_8(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_7(expandable, __VA_ARGS__))
#define AU_FE_9_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_7(second, __VA_ARGS__))
#define AU_FE_9(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_8(expandable, __VA_ARGS__))
#define AU_FE_10_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_8(second, __VA_ARGS__))
#define AU_FE_10(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_9(expandable, __VA_ARGS__))
#define AU_FE_11_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_9(second, __VA_ARGS__))
#define AU_FE_11(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_10(expandable, __VA_ARGS__))
#define AU_FE_12_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_10(second, __VA_ARGS__))
#define AU_FE_12(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_11(expandable, __VA_ARGS__))
#define AU_FE_13_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_11(second, __VA_ARGS__))
#define AU_FE_13(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_12(expandable, __VA_ARGS__))
#define AU_FE_14_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_12(second, __VA_ARGS__))
#define AU_FE_14(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_13(expandable, __VA_ARGS__))
#define AU_FE_15_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_13(second, __VA_ARGS__))
#define AU_FE_15(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_14(expandable, __VA_ARGS__))
#define AU_FE_16_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_14(second, __VA_ARGS__))
#define AU_FE_16(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_15(expandable, __VA_ARGS__))
#define AU_FE_17_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_15(second, __VA_ARGS__))
#define AU_FE_17(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_16(expandable, __VA_ARGS__))
#define AU_FE_18_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_16(second, __VA_ARGS__))
#define AU_FE_18(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_17(expandable, __VA_ARGS__))
#define AU_FE_19_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_17(second, __VA_ARGS__))
#define AU_FE_19(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_18(expandable, __VA_ARGS__))
#define AU_FE_20_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_18(second, __VA_ARGS__))
#define AU_FE_20(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_19(expandable, __VA_ARGS__))
#define AU_FE_21_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_19(second, __VA_ARGS__))
#define AU_FE_21(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_20(expandable, __VA_ARGS__))
#define AU_FE_22_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_20(second, __VA_ARGS__))
#define AU_FE_22(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_21(expandable, __VA_ARGS__))
#define AU_FE_23_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_21(second, __VA_ARGS__))
#define AU_FE_23(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_22(expandable, __VA_ARGS__))
#define AU_FE_24_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_22(second, __VA_ARGS__))
#define AU_FE_24(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_23(expandable, __VA_ARGS__))
#define AU_FE_25_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_23(second, __VA_ARGS__))
#define AU_FE_25(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_24(expandable, __VA_ARGS__))
#define AU_FE_26_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_24(second, __VA_ARGS__))
#define AU_FE_26(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_25(expandable, __VA_ARGS__))
#define AU_FE_27_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_25(second, __VA_ARGS__))
#define AU_FE_27(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_26(expandable, __VA_ARGS__))
#define AU_FE_28_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_26(second, __VA_ARGS__))
#define AU_FE_28(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_27(expandable, __VA_ARGS__))
#define AU_FE_29_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_27(second, __VA_ARGS__))
#define AU_FE_29(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_28(expandable, __VA_ARGS__))
#define AU_FE_30_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_28(second, __VA_ARGS__))
#define AU_FE_30(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_29(expandable, __VA_ARGS__))
#define AU_FE_31_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_29(second, __VA_ARGS__))
#define AU_FE_31(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_30(expandable, __VA_ARGS__))
#define AU_FE_32_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_30(second, __VA_ARGS__))
#define AU_FE_32(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_31(expandable, __VA_ARGS__))
#define AU_FE_33_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_31(second, __VA_ARGS__))
#define AU_FE_33(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_32(expandable, __VA_ARGS__))
#define AU_FE_34_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_32(second, __VA_ARGS__))
#define AU_FE_34(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_33(expandable, __VA_ARGS__))
#define AU_FE_35_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_33(second, __VA_ARGS__))
#define AU_FE_35(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_34(expandable, __VA_ARGS__))
#define AU_FE_36_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_34(second, __VA_ARGS__))
#define AU_FE_36(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_35(expandable, __VA_ARGS__))
#define AU_FE_37_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_35(second, __VA_ARGS__))
#define AU_FE_37(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_36(expandable, __VA_ARGS__))
#define AU_FE_38_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_36(second, __VA_ARGS__))
#define AU_FE_38(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_37(expandable, __VA_ARGS__))
#define AU_FE_39_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_37(second, __VA_ARGS__))
#define AU_FE_39(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_38(expandable, __VA_ARGS__))
#define AU_FE_40_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_38(second, __VA_ARGS__))
#define AU_FE_40(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_39(expandable, __VA_ARGS__))
#define AU_FE_41_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_39(second, __VA_ARGS__))
#define AU_FE_41(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_40(expandable, __VA_ARGS__))
#define AU_FE_42_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_40(second, __VA_ARGS__))
#define AU_FE_42(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_41(expandable, __VA_ARGS__))
#define AU_FE_43_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_41(second, __VA_ARGS__))
#define AU_FE_43(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_42(expandable, __VA_ARGS__))
#define AU_FE_44_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_42(second, __VA_ARGS__))
#define AU_FE_44(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_43(expandable, __VA_ARGS__))
#define AU_FE_45_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_43(second, __VA_ARGS__))
#define AU_FE_45(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_44(expandable, __VA_ARGS__))
#define AU_FE_46_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_44(second, __VA_ARGS__))
#define AU_FE_46(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_45(expandable, __VA_ARGS__))
#define AU_FE_47_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_45(second, __VA_ARGS__))
#define AU_FE_47(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_46(expandable, __VA_ARGS__))
#define AU_FE_48_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_46(second, __VA_ARGS__))
#define AU_FE_48(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_47(expandable, __VA_ARGS__))
#define AU_FE_49_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_47(second, __VA_ARGS__))
#define AU_FE_49(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_48(expandable, __VA_ARGS__))
#define AU_FE_50_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_48(second, __VA_ARGS__))
#define AU_FE_50(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_49(expandable, __VA_ARGS__))
#define AU_FE_51_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_49(second, __VA_ARGS__))
#define AU_FE_51(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_50(expandable, __VA_ARGS__))
#define AU_FE_52_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_50(second, __VA_ARGS__))
#define AU_FE_52(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_51(expandable, __VA_ARGS__))
#define AU_FE_53_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_51(second, __VA_ARGS__))
#define AU_FE_53(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_52(expandable, __VA_ARGS__))
#define AU_FE_54_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_52(second, __VA_ARGS__))
#define AU_FE_54(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_53(expandable, __VA_ARGS__))
#define AU_FE_55_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_53(second, __VA_ARGS__))
#define AU_FE_55(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_54(expandable, __VA_ARGS__))
#define AU_FE_56_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_54(second, __VA_ARGS__))
#define AU_FE_56(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_55(expandable, __VA_ARGS__))
#define AU_FE_57_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_55(second, __VA_ARGS__))
#define AU_FE_57(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_56(expandable, __VA_ARGS__))
#define AU_FE_58_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_56(second, __VA_ARGS__))
#define AU_FE_58(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_57(expandable, __VA_ARGS__))
#define AU_FE_59_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_57(second, __VA_ARGS__))
#define AU_FE_59(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_58(expandable, __VA_ARGS__))
#define AU_FE_60_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_58(second, __VA_ARGS__))
#define AU_FE_60(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_59(expandable, __VA_ARGS__))
#define AU_FE_61_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_59(second, __VA_ARGS__))
#define AU_FE_61(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_60(expandable, __VA_ARGS__))
#define AU_FE_62_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_60(second, __VA_ARGS__))
#define AU_FE_62(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_61(expandable, __VA_ARGS__))
#define AU_FE_63_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_61(second, __VA_ARGS__))
#define AU_FE_63(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_62(expandable, __VA_ARGS__))
#define AU_FE_64_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_62(second, __VA_ARGS__))
#define AU_FE_64(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_63(expandable, __VA_ARGS__))
#define AU_FE_65_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_63(second, __VA_ARGS__))
#define AU_FE_65(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_64(expandable, __VA_ARGS__))
#define AU_FE_66_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_64(second, __VA_ARGS__))
#define AU_FE_66(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_65(expandable, __VA_ARGS__))
#define AU_FE_67_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_65(second, __VA_ARGS__))
#define AU_FE_67(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_66(expandable, __VA_ARGS__))
#define AU_FE_68_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_66(second, __VA_ARGS__))
#define AU_FE_68(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_67(expandable, __VA_ARGS__))
#define AU_FE_69_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_67(second, __VA_ARGS__))
#define AU_FE_69(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_68(expandable, __VA_ARGS__))
#define AU_FE_70_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_68(second, __VA_ARGS__))
#define AU_FE_70(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_69(expandable, __VA_ARGS__))
#define AU_FE_71_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_69(second, __VA_ARGS__))
#define AU_FE_71(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_70(expandable, __VA_ARGS__))
#define AU_FE_72_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_70(second, __VA_ARGS__))
#define AU_FE_72(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_71(expandable, __VA_ARGS__))
#define AU_FE_73_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_71(second, __VA_ARGS__))
#define AU_FE_73(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_72(expandable, __VA_ARGS__))
#define AU_FE_74_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_72(second, __VA_ARGS__))
#define AU_FE_74(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_73(expandable, __VA_ARGS__))
#define AU_FE_75_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_73(second, __VA_ARGS__))
#define AU_FE_75(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_74(expandable, __VA_ARGS__))
#define AU_FE_76_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_74(second, __VA_ARGS__))
#define AU_FE_76(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_75(expandable, __VA_ARGS__))
#define AU_FE_77_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_75(second, __VA_ARGS__))
#define AU_FE_77(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_76(expandable, __VA_ARGS__))
#define AU_FE_78_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_76(second, __VA_ARGS__))
#define AU_FE_78(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_77(expandable, __VA_ARGS__))
#define AU_FE_79_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_77(second, __VA_ARGS__))
#define AU_FE_79(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_78(expandable, __VA_ARGS__))
#define AU_FE_80_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_78(second, __VA_ARGS__))
#define AU_FE_80(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_79(expandable, __VA_ARGS__))
#define AU_FE_81_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_79(second, __VA_ARGS__))
#define AU_FE_81(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_80(expandable, __VA_ARGS__))
#define AU_FE_82_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_80(second, __VA_ARGS__))
#define AU_FE_82(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_81(expandable, __VA_ARGS__))
#define AU_FE_83_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_81(second, __VA_ARGS__))
#define AU_FE_83(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_82(expandable, __VA_ARGS__))
#define AU_FE_84_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_82(second, __VA_ARGS__))
#define AU_FE_84(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_83(expandable, __VA_ARGS__))
#define AU_FE_85_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_83(second, __VA_ARGS__))
#define AU_FE_85(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_84(expandable, __VA_ARGS__))
#define AU_FE_86_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_84(second, __VA_ARGS__))
#define AU_FE_86(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_85(expandable, __VA_ARGS__))
#define AU_FE_87_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_85(second, __VA_ARGS__))
#define AU_FE_87(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_86(expandable, __VA_ARGS__))
#define AU_FE_88_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_86(second, __VA_ARGS__))
#define AU_FE_88(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_87(expandable, __VA_ARGS__))
#define AU_FE_89_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_87(second, __VA_ARGS__))
#define AU_FE_89(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_88(expandable, __VA_ARGS__))
#define AU_FE_90_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_88(second, __VA_ARGS__))
#define AU_FE_90(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_89(expandable, __VA_ARGS__))
#define AU_FE_91_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_89(second, __VA_ARGS__))
#define AU_FE_91(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_90(expandable, __VA_ARGS__))
#define AU_FE_92_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_90(second, __VA_ARGS__))
#define AU_FE_92(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_91(expandable, __VA_ARGS__))
#define AU_FE_93_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_91(second, __VA_ARGS__))
#define AU_FE_93(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_92(expandable, __VA_ARGS__))
#define AU_FE_94_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_92(second, __VA_ARGS__))
#define AU_FE_94(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_93(expandable, __VA_ARGS__))
#define AU_FE_95_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_93(second, __VA_ARGS__))
#define AU_FE_95(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_94(expandable, __VA_ARGS__))
#define AU_FE_96_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_94(second, __VA_ARGS__))
#define AU_FE_96(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_95(expandable, __VA_ARGS__))
#define AU_FE_97_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_95(second, __VA_ARGS__))
#define AU_FE_97(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_96(expandable, __VA_ARGS__))
#define AU_FE_98_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_96(second, __VA_ARGS__))
#define AU_FE_98(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_97(expandable, __VA_ARGS__))
#define AU_FE_99_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_97(second, __VA_ARGS__))
#define AU_FE_99(expandable, X0, ...) expandable(X0) AU_FE_EXPAND(AU_FE_98(expandable, __VA_ARGS__))
#define AU_FE_100_FIRST(first, second, X0, ...) first(X0) AU_FE_EXPAND(AU_FE_98(second, __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_FOR_EACH_FIRST(action, ...) AU_FE_EXPAND(AU_GET_MACRO(_whydoweneedthis, __VA_ARGS__, AU_FE_99_FIRST, AU_FE_98_FIRST, AU_FE_97_FIRST, AU_FE_96_FIRST, AU_FE_95_FIRST, AU_FE_94_FIRST, AU_FE_93_FIRST, AU_FE_92_FIRST, AU_FE_91_FIRST, AU_FE_90_FIRST, AU_FE_89_FIRST, AU_FE_88_FIRST, AU_FE_87_FIRST, AU_FE_86_FIRST, AU_FE_85_FIRST, AU_FE_84_FIRST, AU_FE_83_FIRST, AU_FE_82_FIRST, AU_FE_81_FIRST, AU_FE_80_FIRST, AU_FE_79_FIRST, AU_FE_78_FIRST, AU_FE_77_FIRST, AU_FE_76_FIRST, AU_FE_75_FIRST, AU_FE_74_FIRST, AU_FE_73_FIRST, AU_FE_72_FIRST, AU_FE_71_FIRST, AU_FE_70_FIRST, AU_FE_69_FIRST, AU_FE_68_FIRST, AU_FE_67_FIRST, AU_FE_66_FIRST, AU_FE_65_FIRST, AU_FE_64_FIRST, AU_FE_63_FIRST, AU_FE_62_FIRST, AU_FE_61_FIRST, AU_FE_60_FIRST, AU_FE_59_FIRST, AU_FE_58_FIRST, AU_FE_57_FIRST, AU_FE_56_FIRST, AU_FE_55_FIRST, AU_FE_54_FIRST, AU_FE_53_FIRST, AU_FE_52_FIRST, AU_FE_51_FIRST, AU_FE_50_FIRST, AU_FE_49_FIRST, AU_FE_48_FIRST, AU_FE_47_FIRST, AU_FE_46_FIRST, AU_FE_45_FIRST, AU_FE_44_FIRST, AU_FE_43_FIRST, AU_FE_42_FIRST, AU_FE_41_FIRST, AU_FE_40_FIRST, AU_FE_39_FIRST, AU_FE_38_FIRST, AU_FE_37_FIRST, AU_FE_36_FIRST, AU_FE_35_FIRST, AU_FE_34_FIRST, AU_FE_33_FIRST, AU_FE_32_FIRST, AU_FE_31_FIRST, AU_FE_30_FIRST, AU_FE_29_FIRST, AU_FE_28_FIRST, AU_FE_27_FIRST, AU_FE_26_FIRST, AU_FE_25_FIRST, AU_FE_24_FIRST, AU_FE_23_FIRST, AU_FE_22_FIRST, AU_FE_21_FIRST, AU_FE_20_FIRST, AU_FE_19_FIRST, AU_FE_18_FIRST, AU_FE_17_FIRST, AU_FE_16_FIRST, AU_FE_15_FIRST, AU_FE_14_FIRST, AU_FE_13_FIRST, AU_FE_12_FIRST, AU_FE_11_FIRST, AU_FE_10_FIRST, AU_FE_9_FIRST, AU_FE_8_FIRST, AU_FE_7_FIRST, AU_FE_6_FIRST, AU_FE_5_FIRST, AU_FE_4_FIRST, AU_FE_3_FIRST, AU_FE_2_FIRST, AU_FE_1_FIRST, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_2(expandable)
#define AU_FE_1_2(expandable)
#define AU_FE_1_FIRST_2(first, second)
#define AU_FE_2_2(expandable, X0, X1) expandable(X0, X1) AU_FE_EXPAND(AU_FE_0_2(expandable))
#define AU_FE_3_FIRST_2(first, second, X0, X1) first(X0, X1) AU_FE_EXPAND(AU_FE_0_2(second))
#define AU_FE_4_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_2_2(expandable, __VA_ARGS__))
#define AU_FE_5_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_2_2(second, __VA_ARGS__))
#define AU_FE_6_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_4_2(expandable, __VA_ARGS__))
#define AU_FE_7_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_4_2(second, __VA_ARGS__))
#define AU_FE_8_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_6_2(expandable, __VA_ARGS__))
#define AU_FE_9_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_6_2(second, __VA_ARGS__))
#define AU_FE_10_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_8_2(expandable, __VA_ARGS__))
#define AU_FE_11_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_8_2(second, __VA_ARGS__))
#define AU_FE_12_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_10_2(expandable, __VA_ARGS__))
#define AU_FE_13_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_10_2(second, __VA_ARGS__))
#define AU_FE_14_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_12_2(expandable, __VA_ARGS__))
#define AU_FE_15_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_12_2(second, __VA_ARGS__))
#define AU_FE_16_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_14_2(expandable, __VA_ARGS__))
#define AU_FE_17_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_14_2(second, __VA_ARGS__))
#define AU_FE_18_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_16_2(expandable, __VA_ARGS__))
#define AU_FE_19_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_16_2(second, __VA_ARGS__))
#define AU_FE_20_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_18_2(expandable, __VA_ARGS__))
#define AU_FE_21_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_18_2(second, __VA_ARGS__))
#define AU_FE_22_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_20_2(expandable, __VA_ARGS__))
#define AU_FE_23_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_20_2(second, __VA_ARGS__))
#define AU_FE_24_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_22_2(expandable, __VA_ARGS__))
#define AU_FE_25_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_22_2(second, __VA_ARGS__))
#define AU_FE_26_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_24_2(expandable, __VA_ARGS__))
#define AU_FE_27_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_24_2(second, __VA_ARGS__))
#define AU_FE_28_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_26_2(expandable, __VA_ARGS__))
#define AU_FE_29_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_26_2(second, __VA_ARGS__))
#define AU_FE_30_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_28_2(expandable, __VA_ARGS__))
#define AU_FE_31_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_28_2(second, __VA_ARGS__))
#define AU_FE_32_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_30_2(expandable, __VA_ARGS__))
#define AU_FE_33_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_30_2(second, __VA_ARGS__))
#define AU_FE_34_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_32_2(expandable, __VA_ARGS__))
#define AU_FE_35_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_32_2(second, __VA_ARGS__))
#define AU_FE_36_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_34_2(expandable, __VA_ARGS__))
#define AU_FE_37_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_34_2(second, __VA_ARGS__))
#define AU_FE_38_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_36_2(expandable, __VA_ARGS__))
#define AU_FE_39_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_36_2(second, __VA_ARGS__))
#define AU_FE_40_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_38_2(expandable, __VA_ARGS__))
#define AU_FE_41_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_38_2(second, __VA_ARGS__))
#define AU_FE_42_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_40_2(expandable, __VA_ARGS__))
#define AU_FE_43_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_40_2(second, __VA_ARGS__))
#define AU_FE_44_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_42_2(expandable, __VA_ARGS__))
#define AU_FE_45_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_42_2(second, __VA_ARGS__))
#define AU_FE_46_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_44_2(expandable, __VA_ARGS__))
#define AU_FE_47_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_44_2(second, __VA_ARGS__))
#define AU_FE_48_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_46_2(expandable, __VA_ARGS__))
#define AU_FE_49_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_46_2(second, __VA_ARGS__))
#define AU_FE_50_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_48_2(expandable, __VA_ARGS__))
#define AU_FE_51_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_48_2(second, __VA_ARGS__))
#define AU_FE_52_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_50_2(expandable, __VA_ARGS__))
#define AU_FE_53_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_50_2(second, __VA_ARGS__))
#define AU_FE_54_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_52_2(expandable, __VA_ARGS__))
#define AU_FE_55_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_52_2(second, __VA_ARGS__))
#define AU_FE_56_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_54_2(expandable, __VA_ARGS__))
#define AU_FE_57_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_54_2(second, __VA_ARGS__))
#define AU_FE_58_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_56_2(expandable, __VA_ARGS__))
#define AU_FE_59_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_56_2(second, __VA_ARGS__))
#define AU_FE_60_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_58_2(expandable, __VA_ARGS__))
#define AU_FE_61_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_58_2(second, __VA_ARGS__))
#define AU_FE_62_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_60_2(expandable, __VA_ARGS__))
#define AU_FE_63_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_60_2(second, __VA_ARGS__))
#define AU_FE_64_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_62_2(expandable, __VA_ARGS__))
#define AU_FE_65_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_62_2(second, __VA_ARGS__))
#define AU_FE_66_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_64_2(expandable, __VA_ARGS__))
#define AU_FE_67_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_64_2(second, __VA_ARGS__))
#define AU_FE_68_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_66_2(expandable, __VA_ARGS__))
#define AU_FE_69_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_66_2(second, __VA_ARGS__))
#define AU_FE_70_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_68_2(expandable, __VA_ARGS__))
#define AU_FE_71_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_68_2(second, __VA_ARGS__))
#define AU_FE_72_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_70_2(expandable, __VA_ARGS__))
#define AU_FE_73_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_70_2(second, __VA_ARGS__))
#define AU_FE_74_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_72_2(expandable, __VA_ARGS__))
#define AU_FE_75_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_72_2(second, __VA_ARGS__))
#define AU_FE_76_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_74_2(expandable, __VA_ARGS__))
#define AU_FE_77_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_74_2(second, __VA_ARGS__))
#define AU_FE_78_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_76_2(expandable, __VA_ARGS__))
#define AU_FE_79_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_76_2(second, __VA_ARGS__))
#define AU_FE_80_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_78_2(expandable, __VA_ARGS__))
#define AU_FE_81_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_78_2(second, __VA_ARGS__))
#define AU_FE_82_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_80_2(expandable, __VA_ARGS__))
#define AU_FE_83_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_80_2(second, __VA_ARGS__))
#define AU_FE_84_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_82_2(expandable, __VA_ARGS__))
#define AU_FE_85_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_82_2(second, __VA_ARGS__))
#define AU_FE_86_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_84_2(expandable, __VA_ARGS__))
#define AU_FE_87_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_84_2(second, __VA_ARGS__))
#define AU_FE_88_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_86_2(expandable, __VA_ARGS__))
#define AU_FE_89_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_86_2(second, __VA_ARGS__))
#define AU_FE_90_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_88_2(expandable, __VA_ARGS__))
#define AU_FE_91_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_88_2(second, __VA_ARGS__))
#define AU_FE_92_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_90_2(expandable, __VA_ARGS__))
#define AU_FE_93_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_90_2(second, __VA_ARGS__))
#define AU_FE_94_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_92_2(expandable, __VA_ARGS__))
#define AU_FE_95_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_92_2(second, __VA_ARGS__))
#define AU_FE_96_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_94_2(expandable, __VA_ARGS__))
#define AU_FE_97_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_94_2(second, __VA_ARGS__))
#define AU_FE_98_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_96_2(expandable, __VA_ARGS__))
#define AU_FE_99_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_96_2(second, __VA_ARGS__))
#define AU_FE_100_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_98_2(expandable, __VA_ARGS__))
#define AU_FE_101_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_98_2(second, __VA_ARGS__))
#define AU_FE_102_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_100_2(expandable, __VA_ARGS__))
#define AU_FE_103_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_100_2(second, __VA_ARGS__))
#define AU_FE_104_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_102_2(expandable, __VA_ARGS__))
#define AU_FE_105_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_102_2(second, __VA_ARGS__))
#define AU_FE_106_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_104_2(expandable, __VA_ARGS__))
#define AU_FE_107_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_104_2(second, __VA_ARGS__))
#define AU_FE_108_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_106_2(expandable, __VA_ARGS__))
#define AU_FE_109_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_106_2(second, __VA_ARGS__))
#define AU_FE_110_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_108_2(expandable, __VA_ARGS__))
#define AU_FE_111_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_108_2(second, __VA_ARGS__))
#define AU_FE_112_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_110_2(expandable, __VA_ARGS__))
#define AU_FE_113_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_110_2(second, __VA_ARGS__))
#define AU_FE_114_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_112_2(expandable, __VA_ARGS__))
#define AU_FE_115_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_112_2(second, __VA_ARGS__))
#define AU_FE_116_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_114_2(expandable, __VA_ARGS__))
#define AU_FE_117_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_114_2(second, __VA_ARGS__))
#define AU_FE_118_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_116_2(expandable, __VA_ARGS__))
#define AU_FE_119_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_116_2(second, __VA_ARGS__))
#define AU_FE_120_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_118_2(expandable, __VA_ARGS__))
#define AU_FE_121_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_118_2(second, __VA_ARGS__))
#define AU_FE_122_2(expandable, X0, X1, ...) expandable(X0, X1) AU_FE_EXPAND(AU_FE_120_2(expandable, __VA_ARGS__))
#define AU_FE_123_FIRST_2(first, second, X0, X1, ...) first(X0, X1) AU_FE_EXPAND(AU_FE_120_2(second, __VA_ARGS__))
#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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_2(action, ...) AU_FE_EXPAND(AU_GET_MACRO_2(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_122_2, AU_FE_ERROR, AU_FE_120_2, AU_FE_ERROR, AU_FE_118_2, AU_FE_ERROR, AU_FE_116_2, AU_FE_ERROR, AU_FE_114_2, AU_FE_ERROR, AU_FE_112_2, AU_FE_ERROR, AU_FE_110_2, AU_FE_ERROR, AU_FE_108_2, AU_FE_ERROR, AU_FE_106_2, AU_FE_ERROR, AU_FE_104_2, AU_FE_ERROR, AU_FE_102_2, AU_FE_ERROR, AU_FE_100_2, AU_FE_ERROR, AU_FE_98_2, AU_FE_ERROR, AU_FE_96_2, AU_FE_ERROR, AU_FE_94_2, AU_FE_ERROR, AU_FE_92_2, AU_FE_ERROR, AU_FE_90_2, AU_FE_ERROR, AU_FE_88_2, AU_FE_ERROR, AU_FE_86_2, AU_FE_ERROR, AU_FE_84_2, AU_FE_ERROR, AU_FE_82_2, AU_FE_ERROR, AU_FE_80_2, AU_FE_ERROR, AU_FE_78_2, AU_FE_ERROR, AU_FE_76_2, AU_FE_ERROR, AU_FE_74_2, AU_FE_ERROR, AU_FE_72_2, AU_FE_ERROR, AU_FE_70_2, AU_FE_ERROR, AU_FE_68_2, AU_FE_ERROR, AU_FE_66_2, AU_FE_ERROR, AU_FE_64_2, AU_FE_ERROR, AU_FE_62_2, AU_FE_ERROR, AU_FE_60_2, AU_FE_ERROR, AU_FE_58_2, AU_FE_ERROR, AU_FE_56_2, AU_FE_ERROR, AU_FE_54_2, AU_FE_ERROR, AU_FE_52_2, AU_FE_ERROR, AU_FE_50_2, AU_FE_ERROR, AU_FE_48_2, AU_FE_ERROR, AU_FE_46_2, AU_FE_ERROR, AU_FE_44_2, AU_FE_ERROR, AU_FE_42_2, AU_FE_ERROR, AU_FE_40_2, AU_FE_ERROR, AU_FE_38_2, AU_FE_ERROR, AU_FE_36_2, AU_FE_ERROR, AU_FE_34_2, AU_FE_ERROR, AU_FE_32_2, AU_FE_ERROR, AU_FE_30_2, AU_FE_ERROR, AU_FE_28_2, AU_FE_ERROR, AU_FE_26_2, AU_FE_ERROR, AU_FE_24_2, AU_FE_ERROR, AU_FE_22_2, AU_FE_ERROR, AU_FE_20_2, AU_FE_ERROR, AU_FE_18_2, AU_FE_ERROR, AU_FE_16_2, AU_FE_ERROR, AU_FE_14_2, AU_FE_ERROR, AU_FE_12_2, AU_FE_ERROR, AU_FE_10_2, AU_FE_ERROR, AU_FE_8_2, AU_FE_ERROR, AU_FE_6_2, AU_FE_ERROR, AU_FE_4_2, AU_FE_ERROR, AU_FE_2_2, AU_FE_1_2, AU_FE_0_2)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_2(action, ...) AU_FE_EXPAND(AU_GET_MACRO_2(_whydoweneedthis, __VA_ARGS__, AU_FE_123_FIRST_2, AU_FE_ERROR, AU_FE_121_FIRST_2, AU_FE_ERROR, AU_FE_119_FIRST_2, AU_FE_ERROR, AU_FE_117_FIRST_2, AU_FE_ERROR, AU_FE_115_FIRST_2, AU_FE_ERROR, AU_FE_113_FIRST_2, AU_FE_ERROR, AU_FE_111_FIRST_2, AU_FE_ERROR, AU_FE_109_FIRST_2, AU_FE_ERROR, AU_FE_107_FIRST_2, AU_FE_ERROR, AU_FE_105_FIRST_2, AU_FE_ERROR, AU_FE_103_FIRST_2, AU_FE_ERROR, AU_FE_101_FIRST_2, AU_FE_ERROR, AU_FE_99_FIRST_2, AU_FE_ERROR, AU_FE_97_FIRST_2, AU_FE_ERROR, AU_FE_95_FIRST_2, AU_FE_ERROR, AU_FE_93_FIRST_2, AU_FE_ERROR, AU_FE_91_FIRST_2, AU_FE_ERROR, AU_FE_89_FIRST_2, AU_FE_ERROR, AU_FE_87_FIRST_2, AU_FE_ERROR, AU_FE_85_FIRST_2, AU_FE_ERROR, AU_FE_83_FIRST_2, AU_FE_ERROR, AU_FE_81_FIRST_2, AU_FE_ERROR, AU_FE_79_FIRST_2, AU_FE_ERROR, AU_FE_77_FIRST_2, AU_FE_ERROR, AU_FE_75_FIRST_2, AU_FE_ERROR, AU_FE_73_FIRST_2, AU_FE_ERROR, AU_FE_71_FIRST_2, AU_FE_ERROR, AU_FE_69_FIRST_2, AU_FE_ERROR, AU_FE_67_FIRST_2, AU_FE_ERROR, AU_FE_65_FIRST_2, AU_FE_ERROR, AU_FE_63_FIRST_2, AU_FE_ERROR, AU_FE_61_FIRST_2, AU_FE_ERROR, AU_FE_59_FIRST_2, AU_FE_ERROR, AU_FE_57_FIRST_2, AU_FE_ERROR, AU_FE_55_FIRST_2, AU_FE_ERROR, AU_FE_53_FIRST_2, AU_FE_ERROR, AU_FE_51_FIRST_2, AU_FE_ERROR, AU_FE_49_FIRST_2, AU_FE_ERROR, AU_FE_47_FIRST_2, AU_FE_ERROR, AU_FE_45_FIRST_2, AU_FE_ERROR, AU_FE_43_FIRST_2, AU_FE_ERROR, AU_FE_41_FIRST_2, AU_FE_ERROR, AU_FE_39_FIRST_2, AU_FE_ERROR, AU_FE_37_FIRST_2, AU_FE_ERROR, AU_FE_35_FIRST_2, AU_FE_ERROR, AU_FE_33_FIRST_2, AU_FE_ERROR, AU_FE_31_FIRST_2, AU_FE_ERROR, AU_FE_29_FIRST_2, AU_FE_ERROR, AU_FE_27_FIRST_2, AU_FE_ERROR, AU_FE_25_FIRST_2, AU_FE_ERROR, AU_FE_23_FIRST_2, AU_FE_ERROR, AU_FE_21_FIRST_2, AU_FE_ERROR, AU_FE_19_FIRST_2, AU_FE_ERROR, AU_FE_17_FIRST_2, AU_FE_ERROR, AU_FE_15_FIRST_2, AU_FE_ERROR, AU_FE_13_FIRST_2, AU_FE_ERROR, AU_FE_11_FIRST_2, AU_FE_ERROR, AU_FE_9_FIRST_2, AU_FE_ERROR, AU_FE_7_FIRST_2, AU_FE_ERROR, AU_FE_5_FIRST_2, AU_FE_ERROR, AU_FE_3_FIRST_2, AU_FE_ERROR, AU_FE_1_FIRST_2, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_3(expandable)
#define AU_FE_1_3(expandable, empty)
#define AU_FE_1_FIRST_3(first, second)
#define AU_FE_2_3(expandable)
#define AU_FE_3_3(expandable, X0, X1, X2) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_0_3(expandable))
#define AU_FE_4_FIRST_3(first, second, X0, X1, X2) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_0_3(second))
#define AU_FE_6_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_3_3(expandable, __VA_ARGS__))
#define AU_FE_7_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_3_3(second, __VA_ARGS__))
#define AU_FE_9_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_6_3(expandable, __VA_ARGS__))
#define AU_FE_10_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_6_3(second, __VA_ARGS__))
#define AU_FE_12_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_9_3(expandable, __VA_ARGS__))
#define AU_FE_13_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_9_3(second, __VA_ARGS__))
#define AU_FE_15_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_12_3(expandable, __VA_ARGS__))
#define AU_FE_16_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_12_3(second, __VA_ARGS__))
#define AU_FE_18_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_15_3(expandable, __VA_ARGS__))
#define AU_FE_19_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_15_3(second, __VA_ARGS__))
#define AU_FE_21_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_18_3(expandable, __VA_ARGS__))
#define AU_FE_22_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_18_3(second, __VA_ARGS__))
#define AU_FE_24_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_21_3(expandable, __VA_ARGS__))
#define AU_FE_25_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_21_3(second, __VA_ARGS__))
#define AU_FE_27_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_24_3(expandable, __VA_ARGS__))
#define AU_FE_28_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_24_3(second, __VA_ARGS__))
#define AU_FE_30_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_27_3(expandable, __VA_ARGS__))
#define AU_FE_31_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_27_3(second, __VA_ARGS__))
#define AU_FE_33_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_30_3(expandable, __VA_ARGS__))
#define AU_FE_34_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_30_3(second, __VA_ARGS__))
#define AU_FE_36_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_33_3(expandable, __VA_ARGS__))
#define AU_FE_37_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_33_3(second, __VA_ARGS__))
#define AU_FE_39_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_36_3(expandable, __VA_ARGS__))
#define AU_FE_40_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_36_3(second, __VA_ARGS__))
#define AU_FE_42_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_39_3(expandable, __VA_ARGS__))
#define AU_FE_43_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_39_3(second, __VA_ARGS__))
#define AU_FE_45_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_42_3(expandable, __VA_ARGS__))
#define AU_FE_46_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_42_3(second, __VA_ARGS__))
#define AU_FE_48_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_45_3(expandable, __VA_ARGS__))
#define AU_FE_49_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_45_3(second, __VA_ARGS__))
#define AU_FE_51_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_48_3(expandable, __VA_ARGS__))
#define AU_FE_52_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_48_3(second, __VA_ARGS__))
#define AU_FE_54_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_51_3(expandable, __VA_ARGS__))
#define AU_FE_55_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_51_3(second, __VA_ARGS__))
#define AU_FE_57_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_54_3(expandable, __VA_ARGS__))
#define AU_FE_58_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_54_3(second, __VA_ARGS__))
#define AU_FE_60_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_57_3(expandable, __VA_ARGS__))
#define AU_FE_61_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_57_3(second, __VA_ARGS__))
#define AU_FE_63_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_60_3(expandable, __VA_ARGS__))
#define AU_FE_64_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_60_3(second, __VA_ARGS__))
#define AU_FE_66_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_63_3(expandable, __VA_ARGS__))
#define AU_FE_67_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_63_3(second, __VA_ARGS__))
#define AU_FE_69_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_66_3(expandable, __VA_ARGS__))
#define AU_FE_70_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_66_3(second, __VA_ARGS__))
#define AU_FE_72_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_69_3(expandable, __VA_ARGS__))
#define AU_FE_73_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_69_3(second, __VA_ARGS__))
#define AU_FE_75_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_72_3(expandable, __VA_ARGS__))
#define AU_FE_76_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_72_3(second, __VA_ARGS__))
#define AU_FE_78_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_75_3(expandable, __VA_ARGS__))
#define AU_FE_79_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_75_3(second, __VA_ARGS__))
#define AU_FE_81_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_78_3(expandable, __VA_ARGS__))
#define AU_FE_82_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_78_3(second, __VA_ARGS__))
#define AU_FE_84_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_81_3(expandable, __VA_ARGS__))
#define AU_FE_85_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_81_3(second, __VA_ARGS__))
#define AU_FE_87_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_84_3(expandable, __VA_ARGS__))
#define AU_FE_88_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_84_3(second, __VA_ARGS__))
#define AU_FE_90_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_87_3(expandable, __VA_ARGS__))
#define AU_FE_91_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_87_3(second, __VA_ARGS__))
#define AU_FE_93_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_90_3(expandable, __VA_ARGS__))
#define AU_FE_94_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_90_3(second, __VA_ARGS__))
#define AU_FE_96_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_93_3(expandable, __VA_ARGS__))
#define AU_FE_97_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_93_3(second, __VA_ARGS__))
#define AU_FE_99_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_96_3(expandable, __VA_ARGS__))
#define AU_FE_100_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_96_3(second, __VA_ARGS__))
#define AU_FE_102_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_99_3(expandable, __VA_ARGS__))
#define AU_FE_103_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_99_3(second, __VA_ARGS__))
#define AU_FE_105_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_102_3(expandable, __VA_ARGS__))
#define AU_FE_106_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_102_3(second, __VA_ARGS__))
#define AU_FE_108_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_105_3(expandable, __VA_ARGS__))
#define AU_FE_109_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_105_3(second, __VA_ARGS__))
#define AU_FE_111_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_108_3(expandable, __VA_ARGS__))
#define AU_FE_112_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_108_3(second, __VA_ARGS__))
#define AU_FE_114_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_111_3(expandable, __VA_ARGS__))
#define AU_FE_115_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_111_3(second, __VA_ARGS__))
#define AU_FE_117_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_114_3(expandable, __VA_ARGS__))
#define AU_FE_118_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_114_3(second, __VA_ARGS__))
#define AU_FE_120_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_117_3(expandable, __VA_ARGS__))
#define AU_FE_121_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_117_3(second, __VA_ARGS__))
#define AU_FE_123_3(expandable, X0, X1, X2, ...) expandable(X0, X1, X2) AU_FE_EXPAND(AU_FE_120_3(expandable, __VA_ARGS__))
#define AU_FE_124_FIRST_3(first, second, X0, X1, X2, ...) first(X0, X1, X2) AU_FE_EXPAND(AU_FE_120_3(second, __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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_3(action, ...) AU_FE_EXPAND(AU_GET_MACRO_3(_whydoweneedthis, __VA_ARGS__, AU_FE_123_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_120_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_117_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_114_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_111_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_108_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_105_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_102_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_99_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_96_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_93_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_90_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_87_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_84_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_81_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_78_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_75_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_72_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_69_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_66_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_63_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_60_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_57_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_54_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_51_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_48_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_45_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_42_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_39_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_36_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_33_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_30_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_27_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_24_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_21_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_18_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_15_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_12_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_9_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_6_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_3_3, AU_FE_2_3, AU_FE_1_3, AU_FE_0_3)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_3(action, ...) AU_FE_EXPAND(AU_GET_MACRO_3(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_121_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_118_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_115_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_112_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_109_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_106_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_103_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_100_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_97_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_94_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_91_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_88_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_85_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_82_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_79_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_76_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_73_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_70_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_67_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_64_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_61_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_58_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_55_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_52_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_49_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_46_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_43_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_40_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_37_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_34_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_31_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_28_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_25_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_22_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_19_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_16_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_13_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_10_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_7_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_4_FIRST_3, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_FIRST_3, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_4(expandable)
#define AU_FE_1_4(expandable, empty)
#define AU_FE_1_FIRST_4(first, second)
#define AU_FE_3_4(expandable)
#define AU_FE_4_4(expandable, X0, X1, X2, X3) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_0_4(expandable))
#define AU_FE_5_FIRST_4(first, second, X0, X1, X2, X3) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_0_4(second))
#define AU_FE_8_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_4_4(expandable, __VA_ARGS__))
#define AU_FE_9_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_4_4(second, __VA_ARGS__))
#define AU_FE_12_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_8_4(expandable, __VA_ARGS__))
#define AU_FE_13_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_8_4(second, __VA_ARGS__))
#define AU_FE_16_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_12_4(expandable, __VA_ARGS__))
#define AU_FE_17_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_12_4(second, __VA_ARGS__))
#define AU_FE_20_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_16_4(expandable, __VA_ARGS__))
#define AU_FE_21_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_16_4(second, __VA_ARGS__))
#define AU_FE_24_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_20_4(expandable, __VA_ARGS__))
#define AU_FE_25_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_20_4(second, __VA_ARGS__))
#define AU_FE_28_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_24_4(expandable, __VA_ARGS__))
#define AU_FE_29_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_24_4(second, __VA_ARGS__))
#define AU_FE_32_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_28_4(expandable, __VA_ARGS__))
#define AU_FE_33_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_28_4(second, __VA_ARGS__))
#define AU_FE_36_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_32_4(expandable, __VA_ARGS__))
#define AU_FE_37_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_32_4(second, __VA_ARGS__))
#define AU_FE_40_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_36_4(expandable, __VA_ARGS__))
#define AU_FE_41_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_36_4(second, __VA_ARGS__))
#define AU_FE_44_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_40_4(expandable, __VA_ARGS__))
#define AU_FE_45_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_40_4(second, __VA_ARGS__))
#define AU_FE_48_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_44_4(expandable, __VA_ARGS__))
#define AU_FE_49_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_44_4(second, __VA_ARGS__))
#define AU_FE_52_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_48_4(expandable, __VA_ARGS__))
#define AU_FE_53_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_48_4(second, __VA_ARGS__))
#define AU_FE_56_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_52_4(expandable, __VA_ARGS__))
#define AU_FE_57_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_52_4(second, __VA_ARGS__))
#define AU_FE_60_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_56_4(expandable, __VA_ARGS__))
#define AU_FE_61_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_56_4(second, __VA_ARGS__))
#define AU_FE_64_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_60_4(expandable, __VA_ARGS__))
#define AU_FE_65_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_60_4(second, __VA_ARGS__))
#define AU_FE_68_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_64_4(expandable, __VA_ARGS__))
#define AU_FE_69_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_64_4(second, __VA_ARGS__))
#define AU_FE_72_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_68_4(expandable, __VA_ARGS__))
#define AU_FE_73_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_68_4(second, __VA_ARGS__))
#define AU_FE_76_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_72_4(expandable, __VA_ARGS__))
#define AU_FE_77_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_72_4(second, __VA_ARGS__))
#define AU_FE_80_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_76_4(expandable, __VA_ARGS__))
#define AU_FE_81_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_76_4(second, __VA_ARGS__))
#define AU_FE_84_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_80_4(expandable, __VA_ARGS__))
#define AU_FE_85_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_80_4(second, __VA_ARGS__))
#define AU_FE_88_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_84_4(expandable, __VA_ARGS__))
#define AU_FE_89_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_84_4(second, __VA_ARGS__))
#define AU_FE_92_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_88_4(expandable, __VA_ARGS__))
#define AU_FE_93_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_88_4(second, __VA_ARGS__))
#define AU_FE_96_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_92_4(expandable, __VA_ARGS__))
#define AU_FE_97_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_92_4(second, __VA_ARGS__))
#define AU_FE_100_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_96_4(expandable, __VA_ARGS__))
#define AU_FE_101_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_96_4(second, __VA_ARGS__))
#define AU_FE_104_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_100_4(expandable, __VA_ARGS__))
#define AU_FE_105_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_100_4(second, __VA_ARGS__))
#define AU_FE_108_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_104_4(expandable, __VA_ARGS__))
#define AU_FE_109_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_104_4(second, __VA_ARGS__))
#define AU_FE_112_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_108_4(expandable, __VA_ARGS__))
#define AU_FE_113_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_108_4(second, __VA_ARGS__))
#define AU_FE_116_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_112_4(expandable, __VA_ARGS__))
#define AU_FE_117_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_112_4(second, __VA_ARGS__))
#define AU_FE_120_4(expandable, X0, X1, X2, X3, ...) expandable(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_116_4(expandable, __VA_ARGS__))
#define AU_FE_121_FIRST_4(first, second, X0, X1, X2, X3, ...) first(X0, X1, X2, X3) AU_FE_EXPAND(AU_FE_116_4(second, __VA_ARGS__))
#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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_4(action, ...) AU_FE_EXPAND(AU_GET_MACRO_4(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_120_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_116_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_112_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_108_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_104_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_100_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_96_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_92_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_88_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_84_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_80_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_76_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_72_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_68_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_64_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_60_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_56_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_52_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_48_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_44_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_40_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_36_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_32_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_28_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_24_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_20_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_16_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_12_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_8_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_4_4, AU_FE_3_4, AU_FE_ERROR, AU_FE_1_4, AU_FE_0_4)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_4(action, ...) AU_FE_EXPAND(AU_GET_MACRO_4(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_121_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_117_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_113_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_109_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_105_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_101_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_97_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_93_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_89_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_85_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_81_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_77_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_73_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_69_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_65_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_61_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_57_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_53_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_49_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_45_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_41_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_37_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_33_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_29_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_25_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_21_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_17_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_13_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_9_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_5_FIRST_4, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_FIRST_4, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_5(expandable)
#define AU_FE_1_5(expandable, empty)
#define AU_FE_1_FIRST_5(first, second)
#define AU_FE_4_5(expandable)
#define AU_FE_5_5(expandable, X0, X1, X2, X3, X4) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_0_5(expandable))
#define AU_FE_6_FIRST_5(first, second, X0, X1, X2, X3, X4) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_0_5(second))
#define AU_FE_10_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_5_5(expandable, __VA_ARGS__))
#define AU_FE_11_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_5_5(second, __VA_ARGS__))
#define AU_FE_15_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_10_5(expandable, __VA_ARGS__))
#define AU_FE_16_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_10_5(second, __VA_ARGS__))
#define AU_FE_20_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_15_5(expandable, __VA_ARGS__))
#define AU_FE_21_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_15_5(second, __VA_ARGS__))
#define AU_FE_25_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_20_5(expandable, __VA_ARGS__))
#define AU_FE_26_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_20_5(second, __VA_ARGS__))
#define AU_FE_30_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_25_5(expandable, __VA_ARGS__))
#define AU_FE_31_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_25_5(second, __VA_ARGS__))
#define AU_FE_35_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_30_5(expandable, __VA_ARGS__))
#define AU_FE_36_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_30_5(second, __VA_ARGS__))
#define AU_FE_40_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_35_5(expandable, __VA_ARGS__))
#define AU_FE_41_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_35_5(second, __VA_ARGS__))
#define AU_FE_45_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_40_5(expandable, __VA_ARGS__))
#define AU_FE_46_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_40_5(second, __VA_ARGS__))
#define AU_FE_50_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_45_5(expandable, __VA_ARGS__))
#define AU_FE_51_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_45_5(second, __VA_ARGS__))
#define AU_FE_55_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_50_5(expandable, __VA_ARGS__))
#define AU_FE_56_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_50_5(second, __VA_ARGS__))
#define AU_FE_60_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_55_5(expandable, __VA_ARGS__))
#define AU_FE_61_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_55_5(second, __VA_ARGS__))
#define AU_FE_65_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_60_5(expandable, __VA_ARGS__))
#define AU_FE_66_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_60_5(second, __VA_ARGS__))
#define AU_FE_70_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_65_5(expandable, __VA_ARGS__))
#define AU_FE_71_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_65_5(second, __VA_ARGS__))
#define AU_FE_75_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_70_5(expandable, __VA_ARGS__))
#define AU_FE_76_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_70_5(second, __VA_ARGS__))
#define AU_FE_80_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_75_5(expandable, __VA_ARGS__))
#define AU_FE_81_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_75_5(second, __VA_ARGS__))
#define AU_FE_85_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_80_5(expandable, __VA_ARGS__))
#define AU_FE_86_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_80_5(second, __VA_ARGS__))
#define AU_FE_90_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_85_5(expandable, __VA_ARGS__))
#define AU_FE_91_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_85_5(second, __VA_ARGS__))
#define AU_FE_95_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_90_5(expandable, __VA_ARGS__))
#define AU_FE_96_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_90_5(second, __VA_ARGS__))
#define AU_FE_100_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_95_5(expandable, __VA_ARGS__))
#define AU_FE_101_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_95_5(second, __VA_ARGS__))
#define AU_FE_105_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_100_5(expandable, __VA_ARGS__))
#define AU_FE_106_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_100_5(second, __VA_ARGS__))
#define AU_FE_110_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_105_5(expandable, __VA_ARGS__))
#define AU_FE_111_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_105_5(second, __VA_ARGS__))
#define AU_FE_115_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_110_5(expandable, __VA_ARGS__))
#define AU_FE_116_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_110_5(second, __VA_ARGS__))
#define AU_FE_120_5(expandable, X0, X1, X2, X3, X4, ...) expandable(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_115_5(expandable, __VA_ARGS__))
#define AU_FE_121_FIRST_5(first, second, X0, X1, X2, X3, X4, ...) first(X0, X1, X2, X3, X4) AU_FE_EXPAND(AU_FE_115_5(second, __VA_ARGS__))
#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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_5(action, ...) AU_FE_EXPAND(AU_GET_MACRO_5(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_120_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_115_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_110_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_105_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_100_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_95_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_90_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_85_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_80_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_75_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_70_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_65_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_60_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_55_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_50_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_45_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_40_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_35_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_30_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_25_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_20_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_15_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_10_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_5_5, AU_FE_4_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_5, AU_FE_0_5)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_5(action, ...) AU_FE_EXPAND(AU_GET_MACRO_5(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_121_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_116_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_111_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_106_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_101_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_96_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_91_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_86_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_81_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_76_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_71_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_66_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_61_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_56_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_51_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_46_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_41_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_36_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_31_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_26_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_21_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_16_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_11_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_6_FIRST_5, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_FIRST_5, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_6(expandable)
#define AU_FE_1_6(expandable, empty)
#define AU_FE_1_FIRST_6(first, second)
#define AU_FE_5_6(expandable)
#define AU_FE_6_6(expandable, X0, X1, X2, X3, X4, X5) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_0_6(expandable))
#define AU_FE_7_FIRST_6(first, second, X0, X1, X2, X3, X4, X5) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_0_6(second))
#define AU_FE_12_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_6_6(expandable, __VA_ARGS__))
#define AU_FE_13_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_6_6(second, __VA_ARGS__))
#define AU_FE_18_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_12_6(expandable, __VA_ARGS__))
#define AU_FE_19_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_12_6(second, __VA_ARGS__))
#define AU_FE_24_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_18_6(expandable, __VA_ARGS__))
#define AU_FE_25_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_18_6(second, __VA_ARGS__))
#define AU_FE_30_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_24_6(expandable, __VA_ARGS__))
#define AU_FE_31_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_24_6(second, __VA_ARGS__))
#define AU_FE_36_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_30_6(expandable, __VA_ARGS__))
#define AU_FE_37_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_30_6(second, __VA_ARGS__))
#define AU_FE_42_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_36_6(expandable, __VA_ARGS__))
#define AU_FE_43_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_36_6(second, __VA_ARGS__))
#define AU_FE_48_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_42_6(expandable, __VA_ARGS__))
#define AU_FE_49_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_42_6(second, __VA_ARGS__))
#define AU_FE_54_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_48_6(expandable, __VA_ARGS__))
#define AU_FE_55_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_48_6(second, __VA_ARGS__))
#define AU_FE_60_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_54_6(expandable, __VA_ARGS__))
#define AU_FE_61_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_54_6(second, __VA_ARGS__))
#define AU_FE_66_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_60_6(expandable, __VA_ARGS__))
#define AU_FE_67_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_60_6(second, __VA_ARGS__))
#define AU_FE_72_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_66_6(expandable, __VA_ARGS__))
#define AU_FE_73_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_66_6(second, __VA_ARGS__))
#define AU_FE_78_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_72_6(expandable, __VA_ARGS__))
#define AU_FE_79_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_72_6(second, __VA_ARGS__))
#define AU_FE_84_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_78_6(expandable, __VA_ARGS__))
#define AU_FE_85_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_78_6(second, __VA_ARGS__))
#define AU_FE_90_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_84_6(expandable, __VA_ARGS__))
#define AU_FE_91_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_84_6(second, __VA_ARGS__))
#define AU_FE_96_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_90_6(expandable, __VA_ARGS__))
#define AU_FE_97_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_90_6(second, __VA_ARGS__))
#define AU_FE_102_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_96_6(expandable, __VA_ARGS__))
#define AU_FE_103_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_96_6(second, __VA_ARGS__))
#define AU_FE_108_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_102_6(expandable, __VA_ARGS__))
#define AU_FE_109_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_102_6(second, __VA_ARGS__))
#define AU_FE_114_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_108_6(expandable, __VA_ARGS__))
#define AU_FE_115_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_108_6(second, __VA_ARGS__))
#define AU_FE_120_6(expandable, X0, X1, X2, X3, X4, X5, ...) expandable(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_114_6(expandable, __VA_ARGS__))
#define AU_FE_121_FIRST_6(first, second, X0, X1, X2, X3, X4, X5, ...) first(X0, X1, X2, X3, X4, X5) AU_FE_EXPAND(AU_FE_114_6(second, __VA_ARGS__))
#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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_6(action, ...) AU_FE_EXPAND(AU_GET_MACRO_6(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_120_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_114_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_108_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_102_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_96_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_90_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_84_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_78_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_72_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_66_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_60_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_54_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_48_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_42_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_36_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_30_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_24_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_18_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_12_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_6_6, AU_FE_5_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_6, AU_FE_0_6)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_6(action, ...) AU_FE_EXPAND(AU_GET_MACRO_6(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_121_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_115_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_109_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_103_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_97_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_91_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_85_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_79_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_73_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_67_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_61_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_55_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_49_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_43_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_37_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_31_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_25_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_19_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_13_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_7_FIRST_6, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_FIRST_6, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_7(expandable)
#define AU_FE_1_7(expandable, empty)
#define AU_FE_1_FIRST_7(first, second)
#define AU_FE_6_7(expandable)
#define AU_FE_7_7(expandable, X0, X1, X2, X3, X4, X5, X6) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_0_7(expandable))
#define AU_FE_8_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_0_7(second))
#define AU_FE_14_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_7_7(expandable, __VA_ARGS__))
#define AU_FE_15_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_7_7(second, __VA_ARGS__))
#define AU_FE_21_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_14_7(expandable, __VA_ARGS__))
#define AU_FE_22_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_14_7(second, __VA_ARGS__))
#define AU_FE_28_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_21_7(expandable, __VA_ARGS__))
#define AU_FE_29_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_21_7(second, __VA_ARGS__))
#define AU_FE_35_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_28_7(expandable, __VA_ARGS__))
#define AU_FE_36_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_28_7(second, __VA_ARGS__))
#define AU_FE_42_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_35_7(expandable, __VA_ARGS__))
#define AU_FE_43_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_35_7(second, __VA_ARGS__))
#define AU_FE_49_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_42_7(expandable, __VA_ARGS__))
#define AU_FE_50_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_42_7(second, __VA_ARGS__))
#define AU_FE_56_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_49_7(expandable, __VA_ARGS__))
#define AU_FE_57_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_49_7(second, __VA_ARGS__))
#define AU_FE_63_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_56_7(expandable, __VA_ARGS__))
#define AU_FE_64_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_56_7(second, __VA_ARGS__))
#define AU_FE_70_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_63_7(expandable, __VA_ARGS__))
#define AU_FE_71_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_63_7(second, __VA_ARGS__))
#define AU_FE_77_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_70_7(expandable, __VA_ARGS__))
#define AU_FE_78_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_70_7(second, __VA_ARGS__))
#define AU_FE_84_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_77_7(expandable, __VA_ARGS__))
#define AU_FE_85_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_77_7(second, __VA_ARGS__))
#define AU_FE_91_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_84_7(expandable, __VA_ARGS__))
#define AU_FE_92_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_84_7(second, __VA_ARGS__))
#define AU_FE_98_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_91_7(expandable, __VA_ARGS__))
#define AU_FE_99_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_91_7(second, __VA_ARGS__))
#define AU_FE_105_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_98_7(expandable, __VA_ARGS__))
#define AU_FE_106_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_98_7(second, __VA_ARGS__))
#define AU_FE_112_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_105_7(expandable, __VA_ARGS__))
#define AU_FE_113_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_105_7(second, __VA_ARGS__))
#define AU_FE_119_7(expandable, X0, X1, X2, X3, X4, X5, X6, ...) expandable(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_112_7(expandable, __VA_ARGS__))
#define AU_FE_120_FIRST_7(first, second, X0, X1, X2, X3, X4, X5, X6, ...) first(X0, X1, X2, X3, X4, X5, X6) AU_FE_EXPAND(AU_FE_112_7(second, __VA_ARGS__))
#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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_7(action, ...) AU_FE_EXPAND(AU_GET_MACRO_7(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_119_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_112_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_105_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_98_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_91_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_84_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_77_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_70_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_63_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_56_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_49_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_42_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_35_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_28_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_21_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_14_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_7_7, AU_FE_6_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_7, AU_FE_0_7)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_7(action, ...) AU_FE_EXPAND(AU_GET_MACRO_7(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_120_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_113_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_106_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_99_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_92_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_85_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_78_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_71_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_64_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_57_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_50_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_43_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_36_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_29_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_22_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_15_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_8_FIRST_7, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_FIRST_7, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_8(expandable)
#define AU_FE_1_8(expandable, empty)
#define AU_FE_1_FIRST_8(first, second)
#define AU_FE_7_8(expandable)
#define AU_FE_8_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_0_8(expandable))
#define AU_FE_9_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_0_8(second))
#define AU_FE_16_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_8_8(expandable, __VA_ARGS__))
#define AU_FE_17_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_8_8(second, __VA_ARGS__))
#define AU_FE_24_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_16_8(expandable, __VA_ARGS__))
#define AU_FE_25_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_16_8(second, __VA_ARGS__))
#define AU_FE_32_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_24_8(expandable, __VA_ARGS__))
#define AU_FE_33_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_24_8(second, __VA_ARGS__))
#define AU_FE_40_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_32_8(expandable, __VA_ARGS__))
#define AU_FE_41_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_32_8(second, __VA_ARGS__))
#define AU_FE_48_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_40_8(expandable, __VA_ARGS__))
#define AU_FE_49_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_40_8(second, __VA_ARGS__))
#define AU_FE_56_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_48_8(expandable, __VA_ARGS__))
#define AU_FE_57_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_48_8(second, __VA_ARGS__))
#define AU_FE_64_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_56_8(expandable, __VA_ARGS__))
#define AU_FE_65_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_56_8(second, __VA_ARGS__))
#define AU_FE_72_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_64_8(expandable, __VA_ARGS__))
#define AU_FE_73_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_64_8(second, __VA_ARGS__))
#define AU_FE_80_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_72_8(expandable, __VA_ARGS__))
#define AU_FE_81_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_72_8(second, __VA_ARGS__))
#define AU_FE_88_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_80_8(expandable, __VA_ARGS__))
#define AU_FE_89_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_80_8(second, __VA_ARGS__))
#define AU_FE_96_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_88_8(expandable, __VA_ARGS__))
#define AU_FE_97_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_88_8(second, __VA_ARGS__))
#define AU_FE_104_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_96_8(expandable, __VA_ARGS__))
#define AU_FE_105_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_96_8(second, __VA_ARGS__))
#define AU_FE_112_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_104_8(expandable, __VA_ARGS__))
#define AU_FE_113_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_104_8(second, __VA_ARGS__))
#define AU_FE_120_8(expandable, X0, X1, X2, X3, X4, X5, X6, X7, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_112_8(expandable, __VA_ARGS__))
#define AU_FE_121_FIRST_8(first, second, X0, X1, X2, X3, X4, X5, X6, X7, ...) first(X0, X1, X2, X3, X4, X5, X6, X7) AU_FE_EXPAND(AU_FE_112_8(second, __VA_ARGS__))
#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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_8(action, ...) AU_FE_EXPAND(AU_GET_MACRO_8(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_120_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_112_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_104_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_96_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_88_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_80_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_72_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_64_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_56_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_48_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_40_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_32_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_24_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_16_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_8_8, AU_FE_7_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_8, AU_FE_0_8)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_8(action, ...) AU_FE_EXPAND(AU_GET_MACRO_8(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_121_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_113_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_105_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_97_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_89_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_81_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_73_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_65_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_57_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_49_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_41_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_33_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_25_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_17_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_9_FIRST_8, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_FIRST_8, AU_FE_ERROR)(action,__VA_ARGS__))
#define AU_FE_0_9(expandable)
#define AU_FE_1_9(expandable, empty)
#define AU_FE_1_FIRST_9(first, second)
#define AU_FE_8_9(expandable)
#define AU_FE_9_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_0_9(expandable))
#define AU_FE_10_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_0_9(second))
#define AU_FE_18_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_9_9(expandable, __VA_ARGS__))
#define AU_FE_19_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_9_9(second, __VA_ARGS__))
#define AU_FE_27_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_18_9(expandable, __VA_ARGS__))
#define AU_FE_28_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_18_9(second, __VA_ARGS__))
#define AU_FE_36_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_27_9(expandable, __VA_ARGS__))
#define AU_FE_37_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_27_9(second, __VA_ARGS__))
#define AU_FE_45_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_36_9(expandable, __VA_ARGS__))
#define AU_FE_46_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_36_9(second, __VA_ARGS__))
#define AU_FE_54_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_45_9(expandable, __VA_ARGS__))
#define AU_FE_55_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_45_9(second, __VA_ARGS__))
#define AU_FE_63_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_54_9(expandable, __VA_ARGS__))
#define AU_FE_64_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_54_9(second, __VA_ARGS__))
#define AU_FE_72_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_63_9(expandable, __VA_ARGS__))
#define AU_FE_73_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_63_9(second, __VA_ARGS__))
#define AU_FE_81_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_72_9(expandable, __VA_ARGS__))
#define AU_FE_82_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_72_9(second, __VA_ARGS__))
#define AU_FE_90_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_81_9(expandable, __VA_ARGS__))
#define AU_FE_91_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_81_9(second, __VA_ARGS__))
#define AU_FE_99_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_90_9(expandable, __VA_ARGS__))
#define AU_FE_100_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_90_9(second, __VA_ARGS__))
#define AU_FE_108_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_99_9(expandable, __VA_ARGS__))
#define AU_FE_109_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_99_9(second, __VA_ARGS__))
#define AU_FE_117_9(expandable, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) expandable(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_108_9(expandable, __VA_ARGS__))
#define AU_FE_118_FIRST_9(first, second, X0, X1, X2, X3, X4, X5, X6, X7, X8, ...) first(X0, X1, X2, X3, X4, X5, X6, X7, X8) AU_FE_EXPAND(AU_FE_108_9(second, __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, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, NAME,...) NAME
#define AU_FOR_EACH_9(action, ...) AU_FE_EXPAND(AU_GET_MACRO_9(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_117_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_108_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_99_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_90_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_81_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_72_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_63_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_54_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_45_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_36_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_27_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_18_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_9_9, AU_FE_8_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_9, AU_FE_0_9)(action,__VA_ARGS__))
#define AU_FOR_EACH_FIRST_9(action, ...) AU_FE_EXPAND(AU_GET_MACRO_9(_whydoweneedthis, __VA_ARGS__, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_118_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_109_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_100_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_91_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_82_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_73_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_64_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_55_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_46_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_37_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_28_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_19_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_10_FIRST_9, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_ERROR, AU_FE_1_FIRST_9, AU_FE_ERROR)(action,__VA_ARGS__))

View File

@ -1,89 +0,0 @@
/***
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_BRACKET_SCOPE(...) __VA_ARGS__
#define AUI_EXPAND_PARAMS_JOINER_A(a, b) a b
#define AUI_EXPAND_PARAMS_JOINER_B(a, b) , a b
#define AUI_EXPAND_PARAMS(...) AU_FOR_EACH_FIRST_2(AUI_EXPAND_PARAMS_JOINER_A, AUI_EXPAND_PARAMS_JOINER_B, __VA_ARGS__)
#define AUI_EXPAND_PARAMS_TYPES_JOINER_A(a, b) a
#define AUI_EXPAND_PARAMS_TYPES_JOINER_B(a, b) , a
#define AUI_EXPAND_PARAMS_TYPES(...) AU_FOR_EACH_FIRST_2(AUI_EXPAND_PARAMS_TYPES_JOINER_A, AUI_EXPAND_PARAMS_TYPES_JOINER_B, __VA_ARGS__)
#define AUI_EXPAND_PARAMS_PARAMS_JOINER_A(a, b) b
#define AUI_EXPAND_PARAMS_PARAMS_JOINER_B(a, b) , b
#define AUI_EXPAND_PARAMS_PARAMS(...) AU_FOR_EACH_FIRST_2(AUI_EXPAND_PARAMS_PARAMS_JOINER_A, AUI_EXPAND_PARAMS_PARAMS_JOINER_B, __VA_ARGS__)
#define AUI_METHOD_IMPL(ret, name, params) virtual ret name(AUI_EXPAND_PARAMS params) = 0;
#define AUI_METHOD_FUNCTIONAL_IMPL(ret, name, params) \
AuFunction<ret(AUI_EXPAND_PARAMS_TYPES params)> name ## Functional; \
virtual ret name (AUI_EXPAND_PARAMS params) override \
{ \
return name ## Functional(AUI_EXPAND_PARAMS_PARAMS params); \
}
#define AUI_METHOD_FUNCTIONAL_TYPEDEF(ret, name, params) \
using name ## _t = AuFunction<ret(AUI_EXPAND_PARAMS_TYPES params)>;
#define AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL(ret, name, params) \
name ## _t name ## Functional
#define AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL_CREF(ret, name, params) \
const name ## _t &name ## Functional
#define AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL_REF(ret, name, params) \
AuFunction<ret(AUI_EXPAND_PARAMS_TYPES params)> && name ## Functional
#define AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_BASE_A(ret, name, params) AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL_CREF(ret, name, params)
#define AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_BASE_B(ret, name, params) , AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL_CREF(ret, name, params)
#define AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_REF_A(ret, name, params) AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL_REF(ret, name, params)
#define AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_REF_B(ret, name, params) , AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL_REF(ret, name, params)
#define AUI_METHOD_PROTOTYPE_ASSIGN(ret, name, params) \
name ## Functional(name ## Functional)
#define AUI_METHOD_FUNCTIONAL_ASSIGN_A(ret, name, params) : AUI_METHOD_PROTOTYPE_ASSIGN(ret, name, params)
#define AUI_METHOD_FUNCTIONAL_ASSIGN_B(ret, name, params) , AUI_METHOD_PROTOTYPE_ASSIGN(ret, name, params)
#define AUI_METHOD_FUNCTIONAL_FWD(ret, name, params) \
AUI_METHOD_PROTOTYPE_TO_FUNCTIONAL(ret, name, params); \
virtual ret name (AUI_EXPAND_PARAMS params) override;
#define AUI_DEFINE_INTERFACE_START_STRUCT(name, ...) struct name \
{ \
AU_FOR_EACH_3(AUI_METHOD_IMPL, __VA_ARGS__) \
};
#define AUI_DEFINE_INTERFACE_START_FUNCTIONAL_BASE(tmpl, name, ...) struct name ## Functional : name \
{ \
AU_FOR_EACH_3(AUI_METHOD_FUNCTIONAL_TYPEDEF, __VA_ARGS__) \
inline name ## Functional () {} \
inline ~name ## Functional () {} \
inline name ## Functional (AU_FOR_EACH_FIRST_3(AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_BASE_A, AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_BASE_B, __VA_ARGS__)) \
AU_FOR_EACH_FIRST_3(AUI_METHOD_FUNCTIONAL_ASSIGN_A, AUI_METHOD_FUNCTIONAL_ASSIGN_B, __VA_ARGS__) \
{} \
inline name ## Functional (AU_FOR_EACH_FIRST_3(AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_REF_A, AUI_METHOD_FUNCTIONAL_CTOR_PARAMS_REF_B, __VA_ARGS__)) \
AU_FOR_EACH_FIRST_3(AUI_METHOD_FUNCTIONAL_ASSIGN_A, AUI_METHOD_FUNCTIONAL_ASSIGN_B, __VA_ARGS__) \
{} \
AU_FOR_EACH_3(tmpl, __VA_ARGS__) \
};
#define AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_FWD(name, ...) AUI_DEFINE_INTERFACE_START_FUNCTIONAL_BASE(AUI_METHOD_FUNCTIONAL_FWD, name, __VA_ARGS__)
#define AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_IMPL(name, ...) AUI_DEFINE_INTERFACE_START_FUNCTIONAL_BASE(AUI_METHOD_FUNCTIONAL_IMPL, name, __VA_ARGS__)
#define AUI_METHOD(...) AUI_BRACKET_SCOPE(__VA_ARGS__)
#define AUI_PARAMS(...) (__VA_ARGS__)
/// @deprecated
#define AUI_METHODS(...) AUI_BRACKET_SCOPE(__VA_ARGS__)
#define AUI_INTERFACE_FWD(name, ...) AUI_DEFINE_INTERFACE_START_STRUCT(name, __VA_ARGS__) AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_FWD(name, __VA_ARGS__)
#define AUI_INTERFACE_IMPL(name, ...) AUI_DEFINE_INTERFACE_START_STRUCT(name, __VA_ARGS__) AUI_DEFINE_INTERFACE_START_CPP_WRAPPER_IMPL(name, __VA_ARGS__)

View File

@ -113,9 +113,6 @@ name ## Shared_t name ## Shared(T... args) \
#define AU_EMIT_SECOND(a, b) b
#define AU_EMIT_BOTH(a, b) a b
#include "AuroraInterfaces.hpp"
#include "AuroraForEach.hpp"
#if !defined(AuBindThis)
#define AuBindThis(method, ...) std::bind(method, this, ## __VA_ARGS__)
#endif