不应在头文件中定义匿名命名空间
4.6 ID_anonymousNamespaceInHeader
在头文件中定义匿名命名空间相当于在头文件中定义静态数据,头文件被多个源文件包含时会造成数据冗余。
可参见 ID_staticInHeader 的进一步讨论。
示例:
// In a header file
namespace { // Non-compliant
void foo();
}
相关
依据
ISO/IEC 14882:2003 7.3.1.1
ISO/IEC 14882:2011 7.3.1.1
参考
C++ Core Guidelines SF.21
MISRA C++ 2008 7-3-3
SEI CERT DCL59-CPP