☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

为代码设定合理的命名空间

4.2 ID_missingNamespace
目录 › next › previous

命名空间是 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
    ....
}

相关

ID_usingNamespaceInHeader ID_forbidUsingDirectives

参考

MISRA C++ 2008 7-3-1
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.