在同一个C++源文件中使用多个命名空间是一种好习惯吗?

Suk*_*a B 9 c++ namespaces

我想在同一个.cpp文件中包含多个命名空间.

虽然std被广泛使用,但命名空间z3将用于25个KLOC文件的大约10%.

将两者都用作是一种好习惯

    using namespace std;
    using namespace z3;
Run Code Online (Sandbox Code Playgroud)

我只想使用std,然后Z3在需要时通过提到namespase来使用这些方法.喜欢,

    using namespace std;

    z3::context c;
    z3::solver s;
Run Code Online (Sandbox Code Playgroud)

哪个更好的做法?

我不想将它们重命名为一个命名空间.

谢谢和问候,Sukanya

Tvo*_*Tvo 20

实际上最好不要将整个命名空间导入到程序中,因为它会污染您的命名空间.这可能导致命名冲突.最好只导入您正在使用的内容.

所以代替:

using namespace z3;
Run Code Online (Sandbox Code Playgroud)

你应该做:

using z3::context;
Run Code Online (Sandbox Code Playgroud)

  • 与`std`的内容同上 (2认同)

Sca*_*cab 5

您也可以namespace在实际需要的地方使用它,例如在函数体内:

void foo()
{
  using namespace std;
  using z3::context;

  // some implementation

};
Run Code Online (Sandbox Code Playgroud)