2
什么是海湾合作委员会(我正在使用GCC 5.3.0)零变量宏参数的编译器警告标志?GCC编译器警告标志零变量宏参数
该警告是通过这样的代码
// for illustration purposes only:
int foo(int i) { return 0; };
#define FOO(A, ...) foo(A, ##__VA_ARGS__)
FOO(1);
^warning: ISO C++11 requires at least one argument for the "..." in a variadic macro
触发,但警告不指示哪个标志被用于启用/禁用警告(这是在方括号[-Wwarning-flag-name]
通常示出)。
在叮当中,它是-Wgnu-zero-variadic-macro-arguments
。我在warning documentation of gcc-5.3.0中找不到类似的东西。
我试过-Wgnu-zero-variadic-macro-arguments
,-Wvarargs
,-Wno-variadic-macros
(感谢@ Revolver_Ocelot)但这些警告都没有负责。
你到底想要达到什么目的?它看起来不像'foo(int i)',它的定义方式使它与可变参数宏兼容。 – Xirema
@Xirema我试图禁用一个警告,该示例仅用于说明目的。 – gnzlbg
[这个问题](http://stackoverflow.com/questions/11761703/overloading-macro-on-number-of-arguments)可能会有所帮助。您可以用不同数量的变量“重载”宏,以便具有一个参数的宏有效。 – callyalater