gcc(或任何其他编译器)是否有警告我全局命名空间污染的选项?
我试图编译一个示例应用程序套件,但事实证明该示例的很多头文件都受到全局命名空间污染的困扰(在 header 中使用命名空间
文件),因此 Mac OS X 全局结构 Rect 变得不明确。
我还尝试更改 #include 的顺序以在 using namespace
的雷区之前解析系统的 Rect 符号,但这导致一些符号最终没有解析。
我之前使用谷歌搜索失败,虽然预感不好,如果存在这种警告选项,请给我信息。
最佳答案
我不知道 gcc,但 CLang 有:
def warn_using_directive_in_header : Warning<
"using namespace directive in global context in header">,
InGroup<HeaderHygiene>, DefaultIgnore;
您可以直接使用 -Wusing-directive-in-header
或通过组 -Wheader-hygiene
激活它(目前,它是组)。
它已经在邮件列表上进行了彻底审查,通常不会对常规情况发出警告。
关于c++ - 有没有办法警告我全局命名空间污染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5813852/