在我们的团队中,我们希望限制在全局范围的标头中添加“使用名称空间”的做法,因为这不是一个好习惯,通常会导致名称冲突和名称空间污染。
gcc中是否有一种方法可以限制这种在编译时在标题中使用名称空间添加的做法?
我的意思是,当编译器在标头“使用命名空间”中看到全局范围时,会得到某种警告。
谢谢
答案 0 :(得分:6)
您可以将clang-tidy
与google build using namespace支票一起使用,该支票应该对这些使用指令有所抱怨。
答案 1 :(得分:1)
只需将它扔出去,因为它是这种特定情况下的一种非常可行的选择:
在10分钟之内,您可能会以您选择的任何脚本语言编写遍历源代码树并扫描头文件以“使用命名空间”的内容。在您的“每晚构建”上自动运行此脚本,如果发现任何此类用法,则构建失败。