我正在包含一个来自第三方库的文件,该文件会引发一个错误,使用-fpermissive
可以将其降级为警告。但是,由于我不想在编译日志中“污染”这些警告,我希望完全禁用这些消息。
到目前为止,当包含这个文件时,我使用诊断预处理指示符设置了-fpermissive
选项,类似于:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
由于GCC通常提供-f
标志的“正”和“负”版本,因此我考虑忽略“no-permissive”功能:
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
但似乎没有-fpermissive
标志的“负面”版本(我正在使用GCC 4.6.3;但即使是版本4.7.0也没有这个选项)。
我能模仿这种行为吗?
-fno-permissive
是默认选项。-fpermissive
和不设置选项是该标志的“负面”和“正面”版本。尽管如此,您不应使用它。修复代码!即使代码不是你自己写的。 - rubenvb-fpermissive
是这里的hack/解决方法。我们正在谈论哪些代码呢?也许有更好的替代方案。 - rubenvb