Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

I do this

Name: Anonymous 2016-11-17 14:54

return(EXIT_SUCCESS)

And I don't care if you don't like it. It doesn't violate the standard. All you return EXIT_SUCCESS jerks can suck it.

Name: Anonymous 2016-11-18 9:21

Foreach macro are incredibly hard to understand
//I will manually explain how it works
//MapInline macro - map result of func to each array member
#define mapi(A,func) ({foreach(i,A)A[i]=func(A[i]);})

//foreach - create a loop for each member of array up to elms_##iter(unique in-loop identifier name)
//example result: for(u8 i=0,elms_i=10;i<elms_i;i++)
#define foreach(iter,arr) for(u8 iter=0,elms_##iter=elems(arr);iter<elms_##iter;iter++)

//elems - Get number of elements in array
#define elems(arg) (size(arg)/sizeof(arg[0]))

//size1 - a dirty hack to get object size, if size is not(void pointer size) its a true size of object(primitive or array), if its actually a pointer it gets the size from msize(malloc_size) assuming its a heap-allocated object
#define size1(arg1) ({u8 lensize=sizeof(arg1);\
once;\
if((lensize!=sizeof(vp)))break;\
if(isarray(arg1)|isbasic(arg1)){;break;};\
lensize=msize((vp)(u8)arg1);endonce;\
;lensize;})
//just apply size1 to all arguments and sum them
#define size(...) sum(apply(size1,__VA_ARGS__))
//typecheck if object is an array
#define isarray(x) typecheck(x,arraytypes)
#define isbasic(x) typecheck(x,basictypes)
#define basictypes u1,u2,u4,u8,s1,s2,s4,s8,c1,c4,uc4,f4,f8,f10
#define arraytypes u1[],u2[],u4[],u8[],s1[],s2[],s4[],s8[],c1[],c4[],uc4[],f4[],f8[],f10[]

//typecheck - sums to above 0 if true,0 if false
#define typecheck(x,args) sum(varapply(x,istype,args))
//sum - sum arguments
#define sum(...) (opapply( + ,original,__VA_ARGS__))

//below are expanded to one of 63 functions per arg count macro
//varapply - apply with extra common(var) argument before each arguments

//{varapply same as apply but var is used as first argument for func, func(commonvar,argN)

#define varapply3(var,func,arg1) func(var,arg1)
#define varapply4(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply5(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply6(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply7(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply8(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply9(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)

#define varapply10(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply11(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply12(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply13(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply14(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply15(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply16(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply17(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply18(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply19(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)

#define varapply20(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply21(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply22(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply23(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply24(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply25(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply26(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply27(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply28(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply29(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)

#define varapply30(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply31(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply32(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply33(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply34(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply35(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply36(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply37(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply38(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply39(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)

#define varapply40(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply41(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply42(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply43(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply44(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply45(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply46(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply47(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply48(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply49(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
\
#define varapply50(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply51(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply52(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply53(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply54(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply55(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply56(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply57(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply58(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply59(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)

#define varapply60(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply61(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply62(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply63(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)
#define varapply64(var,func,arg1,...) func(var,arg1) ,_VFUNC(varapply,nargs(var,func,__VA_ARGS__))(var,func,__VA_ARGS__)

#define varapply(var,func,arg1,...) _VFUNC(varapply,nargs(var,func,arg1,__VA_ARGS__))(var,func,arg1,__VA_ARGS__)

//opapply - apply and insert operators(pasting OP between arguments) = func(arg1) operator func(arg2) ,etc
//OPAPPLY:same as apply but use custom "operator" glue macro instead of comma

//_VFUNC(pv, nargs(__VA_ARGS__))(__VA_ARGS__)
#define opapply3(operator,func,arg1) func(arg1)
#define opapply4(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply5(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply6(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply7(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply8(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply9(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)

#define opapply10(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply11(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply12(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply13(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply14(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply15(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply16(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply17(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply18(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply19(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)

#define opapply20(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply21(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply22(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply23(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply24(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply25(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply26(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply27(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply28(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply29(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)

#define opapply30(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply31(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply32(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply33(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply34(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply35(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply36(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply37(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply38(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply39(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)

#define opapply40(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply41(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply42(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply43(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply44(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply45(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply46(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply47(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply48(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply49(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
\
#define opapply50(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply51(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply52(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply53(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply54(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply55(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply56(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply57(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply58(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply59(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)

#define opapply60(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply61(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply62(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply63(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)
#define opapply64(operator,func,arg1,...) func(arg1) operator _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)

#define opapply(operator,func,...) _VFUNC(opapply,nargs(operator,func,__VA_ARGS__))(operator,func,__VA_ARGS__)

//find token that equals to number of arguments
#define nargs(...) NARG_I_(__VA_ARGS__,reverse_push_seq_N)
//push array of (Real_Args,63_Counter_args)
#define NARG_I_(...) ARG_N(__VA_ARGS__)
//Arguments Count returned as N(position shifted by length of Real_Args(neat hack)
#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
//the position tokens(numbers) pushed in reverse to get arg_count
#define reverse_push_seq_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
//proxy is just fluff to prevent preprocessor not expanding merge in nested macros, merge is pasting func##arg_count
#define _VFUNC(name, n) proxy(merge)(name, n)
#define VFUNC(func, ...) _VFUNC(func, nargs(__VA_ARGS__))(__VA_ARGS__)

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List