8
Name:
Anonymous
2017-06-20 14:16
#define mapcar1(f,arg) f(arg) #define mapcar2(f,arg,arg2) f(arg),mapcar1(f,arg2) #define mapcar3(f,arg,...) f(arg),mapcar2(f,__VA_ARGS__) #define mapcar4(f,arg,...) f(arg),mapcar3(f,__VA_ARGS__) #define mapcar5(f,arg,...) f(arg),mapcar4(f,__VA_ARGS__) #define mapcar6(f,arg,...) f(arg),mapcar5(f,__VA_ARGS__) #define mapcar7(f,arg,...) f(arg),mapcar6(f,__VA_ARGS__) #define mapcar8(f,arg,...) f(arg),mapcar7(f,__VA_ARGS__) #define mapcar9(f,arg,...) f(arg),mapcar8(f,__VA_ARGS__) #define mapcar10(f,arg,...) f(arg),mapcar9(f,__VA_ARGS__) #define mapcar11(f,arg,...) f(arg),mapcar10(f,__VA_ARGS__) #define mapcar12(f,arg,...) f(arg),mapcar11(f,__VA_ARGS__) #define mapcar13(f,arg,...) f(arg),mapcar12(f,__VA_ARGS__) #define mapcar14(f,arg,...) f(arg),mapcar13(f,__VA_ARGS__) #define mapcar15(f,arg,...) f(arg),mapcar14(f,__VA_ARGS__) #define mapcar16(f,arg,...) f(arg),mapcar15(f,__VA_ARGS__) #define mapcar17(f,arg,...) f(arg),mapcar16(f,__VA_ARGS__) #define mapcar18(f,arg,...) f(arg),mapcar17(f,__VA_ARGS__) #define mapcar19(f,arg,...) f(arg),mapcar18(f,__VA_ARGS__) #define mapcar20(f,arg,...) f(arg),mapcar19(f,__VA_ARGS__) #define mapcar21(f,arg,...) f(arg),mapcar20(f,__VA_ARGS__) #define mapcar22(f,arg,...) f(arg),mapcar21(f,__VA_ARGS__) #define mapcar23(f,arg,...) f(arg),mapcar22(f,__VA_ARGS__) #define mapcar24(f,arg,...) f(arg),mapcar23(f,__VA_ARGS__) #define mapcar25(f,arg,...) f(arg),mapcar24(f,__VA_ARGS__) #define mapcar26(f,arg,...) f(arg),mapcar25(f,__VA_ARGS__) #define mapcar27(f,arg,...) f(arg),mapcar26(f,__VA_ARGS__) #define mapcar28(f,arg,...) f(arg),mapcar27(f,__VA_ARGS__) #define mapcar29(f,arg,...) f(arg),mapcar28(f,__VA_ARGS__) #define mapcar30(f,arg,...) f(arg),mapcar29(f,__VA_ARGS__) #define mapcar31(f,arg,...) f(arg),mapcar30(f,__VA_ARGS__) #define mapcar32(f,arg,...) f(arg),mapcar31(f,__VA_ARGS__) #define mapcar33(f,arg,...) f(arg),mapcar32(f,__VA_ARGS__) #define mapcar34(f,arg,...) f(arg),mapcar33(f,__VA_ARGS__) #define mapcar35(f,arg,...) f(arg),mapcar34(f,__VA_ARGS__) #define mapcar36(f,arg,...) f(arg),mapcar35(f,__VA_ARGS__) #define mapcar37(f,arg,...) f(arg),mapcar36(f,__VA_ARGS__) #define mapcar38(f,arg,...) f(arg),mapcar37(f,__VA_ARGS__) #define mapcar39(f,arg,...) f(arg),mapcar38(f,__VA_ARGS__) // get number of arguments with __NARG__ #define __NARG__(...) __NARG_I_(__VA_ARGS__,__RSEQ_N()) #define __NARG_I_(...) __ARG_N(__VA_ARGS__) #define __ARG_N( \ _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,N,...) N #define __RSEQ_N() \ 63,62,61,60, \ 59,58,57,56,55,54,53,52,51,50, \ 49,48,47,46,45,44,43,42,41,40, \ 39,38,37,36,35,34,33,32,31,30, \ 29,28,27,26,25,24,23,22,21,20, \ 19,18,17,16,15,14,13,12,11,10, \ 9,8,7,6,5,4,3,2,1,0 // general definition for any function name #define _VFUNC_(name, n) name##n #define _VFUNC(name, n) _VFUNC_(name, n) #define VFUNC(func, ...) _VFUNC(func, __NARG__(__VA_ARGS__)) (__VA_ARGS__) #define mapcar(f,...) VFUNC(f,__VA_ARGS__)