为代码设定合理的命名空间
4.2 ID_missingNamespace
命名空间是 C++ 项目的必要组成结构,可有效规避名称冲突等问题。
C++ 代码的顶层作用域应为具名非内联命名空间,命名空间名称应与项目名称相符,且具有标识性。
示例:
namespace NS {
int foo(); // Compliant
int foo(char*); // Compliant
int foo(wchar_t*); // Compliant
}
int foo() { // Non-compliant, it is not ‘int NS::foo()’
....
}
int NS::foo(char*) { // Compliant
....
}
namespace NS {
int foo(wchar_t*) { // Compliant
....
}
}
对于 main 函数和 extern "C" 声明的代码可不受本规则限制,如:
extern "C" int bar(); // Compliant
int main () { // Compliant
....
}
相关
参考
MISRA C++ 2008 7-3-1