【发布时间】:2009-06-16 16:01:11
【问题描述】:
我正在编译 C++ 代码,我想启用 -pedantic 选项。
我正在使用 GCC 4.0,在 Mac OS X Leopard 上运行 Xcode。
例如,可以允许使用 -pedantic(使用 -Wno-variadic-macros 和 -Wno-long-long)时通常禁止的可变参数宏和 long long 类型。
但我找不到任何东西来禁用“枚举器列表末尾的逗号”警告。
有可能吗?
谢谢。
【问题讨论】:
我正在编译 C++ 代码,我想启用 -pedantic 选项。
我正在使用 GCC 4.0,在 Mac OS X Leopard 上运行 Xcode。
例如,可以允许使用 -pedantic(使用 -Wno-variadic-macros 和 -Wno-long-long)时通常禁止的可变参数宏和 long long 类型。
但我找不到任何东西来禁用“枚举器列表末尾的逗号”警告。
有可能吗?
谢谢。
【问题讨论】:
枚举器末尾的逗号在 C99 中有效,但在 C89 中无效,因此如果您的代码是有效的 C99,则以下内容将起作用
gcc -std=c99 -pedantic foo.c
我相当确定它在 C++(根据 g++)中根本无效
编辑:在 HP-UX 上使用 GCC 4.2.1 对其进行了测试,并且没有错误/警告。 foo.c
int main(int argc, char** argv) {
enum { A, B, };
return 0;
}
gcc -std=c99 -pedantic foo.c
【讨论】:
在 C++ 中还不能禁用它,即使它在 C++11 中是合法的。 所以以后在修正 GCC 时,-std=c++11 应该禁用它。
-std=c99 仅适用于 C,而不适用于 C++(如问题所示)。
【讨论】: