我正在尝试在C++17中编译一些不合格的代码,但我遇到了以下问题。
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-fpermissive"
一些仅在设置了 -fpermissive 标志时编译的代码:
#pragma GCC diagnostic pop
它在 GCC 版本 4.6.4 到 4.7.4 上编译得很好,但是所有更高版本的 GCC 都给我以下警告并且不抑制错误。
warning: ‘-fpermissive’ is not an option that controls warnings [-Wpragmas]
#pragma GCC diagnostic ignored "-fpermissive"
When I write (out of desperation)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-fpermissive"
一些仅在设置了 -fpermissive 标志时编译的代码:
#pragma GCC diagnostic pop
我回到了第一广场。目前我想继续在项目中使用 GCC 7.1。我可以将-fpermissive标志设置为编译选项来编译整个项目,但这意味着导致 -fpermissive 错误的其他代码部分可以编译。
精简示例https://godbolt.org/g/KFd5Ke
这个问题与In GCC, how can I mute the '-fpermissive' 警告不重复?因为这是针对较新版本的 GCC,其中上述堆栈溢出问题中提供的解决方案不起作用。我什至举了一个例子。