]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - tests/pp_va_args.qc
Fix warning, and better tests for __VA_ARGS__
[xonotic/gmqcc.git] / tests / pp_va_args.qc
index f54533b80f2e237a5eb97121f7fde1e54784b2c0..6e4002cf4315ca5384a1785ca908644e606038d4 100644 (file)
@@ -1,12 +1,21 @@
 void print(...) = #1;
 
-#define NOPARENS(...) __VA_ARGS__
-#define callem(func, args) func NOPARENS(args)
+// method 0
+#define METHOD__(...) __VA_ARGS__
+#define METHOD_0(F,A) F METHOD__(A)
 
-#define callen(func, ...) func __VA_ARGS__##[0]
+// method 1
+#define METHOD_1(F,A) F(METHOD__ A)
+
+// method 2
+#define METHOD_2(F,...) F __VA_ARGS__##[0]
+
+// method 3
+#define METHOD_3(F,...) F __VA_ARGS__
 
 void main() {
-    print(NOPARENS("hello ", "world\n"));
-    callem(print, ("Yay", ", there\n"));
-    callen(print, ("Woah",", there\n"));
+    METHOD_0(print, ("Method", " <zero>\n"));
+    METHOD_1(print, ("Method", " <one>\n"));
+    METHOD_2(print, ("Method", " <two>\n"));
+    METHOD_3(print, ("Method", " <three>\n"));
 }