我想保留-Wpedantic
所做的任何其他检查,但会丢失有关未命名结构error: ISO C++ prohibits anonymous structs [-Wpedantic]
的警告。
我希望能够执行以下操作:
union
{
struct
{
float x, y, z, w;
};
struct
{
float r, g, b, a;
};
float v[4];
};
我到目前为止发现的
我正在使用C++ 11并使用
-std=c++11
标志进行编译。我有read that C11 supports this feature,但是我还没有提到C++ 11支持它。我碰到过
-fms-extensions
的提到:我尝试了该标志,它似乎没有任何效果(无论
-fms-extensions
和-Wpedantic
之间的顺序排列如何)。编辑-更多详细信息
多亏了这些评论,我发现了以下内容:
我仍然想知道是否存在启用此gcc扩展(我所知道的所有编译器都具有)的方法,该方法将禁用警告。还是
-Wpedantic
全部还是全部? 最佳答案
您可以暂时禁用-Wpedantic
,例如,如果某些包含文件中包含旧代码,则可以:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
#include "old_header.hpp"
#pragma GCC diagnostic pop
当然,您也可以在每次使用匿名结构来限制
pedantic
禁用范围的情况下执行此操作,但是在执行此操作时,也可以继续进行操作,并自行修复代码:)