X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=tests%2Fpp_va_args.qc;h=a42e1927938e2c1e499d81f64444ff9da92aea01;hp=f54533b80f2e237a5eb97121f7fde1e54784b2c0;hb=d631c517b6f5d38add6ad9ce9732f97ac3367959;hpb=b4fbba5708486f80e4109a2bf62ce04e48b86d04 diff --git a/tests/pp_va_args.qc b/tests/pp_va_args.qc index f54533b..a42e192 100644 --- a/tests/pp_va_args.qc +++ b/tests/pp_va_args.qc @@ -1,12 +1,22 @@ -void print(...) = #1; +// method 0 +#define METHOD__(...) __VA_ARGS__ +#define METHOD_0(F,A) F METHOD__(A) -#define NOPARENS(...) __VA_ARGS__ -#define callem(func, args) func NOPARENS(args) +// method 1 +#define METHOD_1(F,A) F(METHOD__ A) -#define callen(func, ...) func __VA_ARGS__##[0] +// method 2 +#define METHOD_2(F,...) F __VA_ARGS__##[0] + +// method 3 +#define METHOD_3(F,...) F __VA_ARGS__ + +// selector +#define METHOD(I, F, ...) METHOD_##I (F, __VA_ARGS__) void main() { - print(NOPARENS("hello ", "world\n")); - callem(print, ("Yay", ", there\n")); - callen(print, ("Woah",", there\n")); + METHOD(0, print, ("Method", " \n")); + METHOD(1, print, ("Method", " \n")); + METHOD(2, print, ("Method", " \n")); + METHOD(3, print, ("Method", " \n")); }