限制C 标头中的名称空间污染
Restrict namespace pollution in C++ Header
在我们的团队中,我们想限制在全球范围中使用名称空间添加"使用名称空间"的实践,因为这不是一个好练习,并且经常导致名称碰撞和名称空间污染。
在GCC中,我们可以限制在编译时使用标题中使用名称空间添加的做法吗?
我的意思是在编译器在标题"使用名称空间"的全局范围内看到时,请发出某种警告。
谢谢
您可以使用命名空间检查将clang-tidy
与Google Build一起使用,该检查应该使用指令对这些空间进行投诉。
只会将此扔到那里,因为它 is 在中是一个非常可行的替代方案, 在10分钟内,您可能会在选择的任何脚本语言中写一些遍历源树并扫描标头文件的内容以获取"使用名称空间"。在您的"夜间构建"上自动运行此脚本,如果找到任何使用情况,则会使构建失败。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 在命名空间中定义函数还是限定函数
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- OpenGL相机和相机空间转型的困惑
- CUDA内核和数学函数的显式命名空间
- 打印第二列时的2d字符矢量打印空间
- 嵌套的匿名命名空间
- CMakeLists.txt中的命名空间表示法
- 了解带有命名空间污染的 TOTW 153 示例
- 如何使用 windbg "dt"命令从命名空间污染的内存转储中获取信息
- 限制C 标头中的名称空间污染
- Java 或 C# 中是否存在命名空间污染(如 C++ 中)
- C++变量的重新定义,全局命名空间被污染,我不知道为什么
- 使用名称空间:便利与名称空间污染
- 标准头文件污染了全局命名空间