Update comments & avoid using M_ID for internal macros

This commit is contained in:
Patrick Pelissier committed 2022-04-18 09:41:43 +02:00
1 parent a2e471620d
commit d8fd43e9e9
1 file changed
+9 -5
+9 -5
View File
@@ -1328,7 +1328,6 @@ M_BEGIN_PROTECTED_CODE
NOTE: Increase number of arguments to 76 due to the number of available methods. NOTE: Increase number of arguments to 76 due to the number of available methods.
NOTE: Rewrite with another approach much more verbose but also much faster for the compiler. NOTE: Rewrite with another approach much more verbose but also much faster for the compiler.
This kind of approach seems ugly, but is in fact the fast one. This kind of approach seems ugly, but is in fact the fast one.
NOTE: Do not call recursively the macro (example: M_MAP2B_10 expands f(d,e) then call M_MAP2B_9 on what remains to break as soon as possible the macro "chain".
Generated by the following command: Generated by the following command:
for i in $(seq 1 52) ; do printf "#define M_MAP2B_%d(f, d" $i ; for j in $(seq 1 $i) ; do printf ", _%d" $j ; done ; printf ") " ; for j in $(seq 1 $i) ; do printf "f(d, _%d) " $j ; done ; printf "\n"; done for i in $(seq 1 52) ; do printf "#define M_MAP2B_%d(f, d" $i ; for j in $(seq 1 $i) ; do printf ", _%d" $j ; done ; printf ") " ; for j in $(seq 1 $i) ; do printf "f(d, _%d) " $j ; done ; printf "\n"; done
*/ */
@@ -1668,18 +1667,23 @@ M_BEGIN_PROTECTED_CODE
#define M_REDUCEI3_52(f,g,d,_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) g(f(d, 1, _1), g(f(d, 2, _2), g(f(d, 3, _3), g(f(d, 4, _4), g(f(d, 5, _5), g(f(d, 6, _6), g(f(d, 7, _7), g(f(d, 8, _8), g(f(d, 9, _9), g(f(d, 10, _10), g(f(d, 11, _11), g(f(d, 12, _12), g(f(d, 13, _13), g(f(d, 14, _14), g(f(d, 15, _15), g(f(d, 16, _16), g(f(d, 17, _17), g(f(d, 18, _18), g(f(d, 19, _19), g(f(d, 20, _20), g(f(d, 21, _21), g(f(d, 22, _22), g(f(d, 23, _23), g(f(d, 24, _24), g(f(d, 25, _25), g(f(d, 26, _26), g(f(d, 27, _27), g(f(d, 28, _28), g(f(d, 29, _29), g(f(d, 30, _30), g(f(d, 31, _31), g(f(d, 32, _32), g(f(d, 33, _33), g(f(d, 34, _34), g(f(d, 35, _35), g(f(d, 36, _36), g(f(d, 37, _37), g(f(d, 38, _38), g(f(d, 39, _39), g(f(d, 40, _40), g(f(d, 41, _41), g(f(d, 42, _42), g(f(d, 43, _43), g(f(d, 44, _44), g(f(d, 45, _45), g(f(d, 46, _46), g(f(d, 47, _47), g(f(d, 48, _48), g(f(d, 49, _49), g(f(d, 50, _50), g(f(d, 51, _51), f(d, 52, _52)))))))))))))))))))))))))))))))))))))))))))))))))))) #define M_REDUCEI3_52(f,g,d,_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) g(f(d, 1, _1), g(f(d, 2, _2), g(f(d, 3, _3), g(f(d, 4, _4), g(f(d, 5, _5), g(f(d, 6, _6), g(f(d, 7, _7), g(f(d, 8, _8), g(f(d, 9, _9), g(f(d, 10, _10), g(f(d, 11, _11), g(f(d, 12, _12), g(f(d, 13, _13), g(f(d, 14, _14), g(f(d, 15, _15), g(f(d, 16, _16), g(f(d, 17, _17), g(f(d, 18, _18), g(f(d, 19, _19), g(f(d, 20, _20), g(f(d, 21, _21), g(f(d, 22, _22), g(f(d, 23, _23), g(f(d, 24, _24), g(f(d, 25, _25), g(f(d, 26, _26), g(f(d, 27, _27), g(f(d, 28, _28), g(f(d, 29, _29), g(f(d, 30, _30), g(f(d, 31, _31), g(f(d, 32, _32), g(f(d, 33, _33), g(f(d, 34, _34), g(f(d, 35, _35), g(f(d, 36, _36), g(f(d, 37, _37), g(f(d, 38, _38), g(f(d, 39, _39), g(f(d, 40, _40), g(f(d, 41, _41), g(f(d, 42, _42), g(f(d, 43, _43), g(f(d, 44, _44), g(f(d, 45, _45), g(f(d, 46, _46), g(f(d, 47, _47), g(f(d, 48, _48), g(f(d, 49, _49), g(f(d, 50, _50), g(f(d, 51, _51), f(d, 52, _52))))))))))))))))))))))))))))))))))))))))))))))))))))
/* M_MAP_C(f, a, b, c) ==> f(a), f(b), f(c) */ /* Like M_MAP but with a comma separator.
#define M_MAP_C(f, ...) M_REDUCE(f, M_ID, __VA_ARGS__) M_MAP_C(f, a, b, c) ==> f(a), f(b), f(c) */
#define M_MAP_C(f, ...) M_REDUCE(f, M_MAP_C_ID, __VA_ARGS__)
#define M_MAP_C_ID(...) __VA_ARGS__
/* M_MAP2_C(f, d, a, b, c) ==> f(d, a), f(d, b), f(d, c) */ /* Like M_MAP2 but with a comma separator.
M_MAP2_C(f, d, a, b, c) ==> f(d, a), f(d, b), f(d, c) */
#define M_MAP2_C(f, d, ...) M_REDUCE2(f, M_MAP2_C_ID, d, __VA_ARGS__) #define M_MAP2_C(f, d, ...) M_REDUCE2(f, M_MAP2_C_ID, d, __VA_ARGS__)
#define M_MAP2_C_ID(...) __VA_ARGS__ #define M_MAP2_C_ID(...) __VA_ARGS__
/* M_MAP3_C(f, d, a, b, c) ==> f(d, a), f(d, b), f(d, c) */ /* Like M_MAP3 but with a comma separator.
M_MAP3_C(f, d, a, b, c) ==> f(d, 1, a), f(d, 2, b), f(d, 3, c) */
#define M_MAP3_C(f, d, ...) M_REDUCE3(f, M_MAP3_C_ID, d, __VA_ARGS__) #define M_MAP3_C(f, d, ...) M_REDUCE3(f, M_MAP3_C_ID, d, __VA_ARGS__)
#define M_MAP3_C_ID(...) __VA_ARGS__ #define M_MAP3_C_ID(...) __VA_ARGS__
/* Sequence of numerical */ /* Sequence of numerical */
/* Example: /* Example:
M_SEQ(init,end)==>init, init+1, ...end M_SEQ(init,end)==>init, init+1, ...end