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

时间:2017-06-03 19:41:05

标签: c++ namespaces

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

虽然广泛使用std,但名称空间z3将在25个KLOC文件的大约10%中使用。

将两者同时用作

是不错的做法
    using namespace std;
    using namespace z3;

我正在考虑仅使用std,然后在需要时通过提及namespase来使用Z3方法。像,

    using namespace std;

    z3::context c;
    z3::solver s;

哪种更好的做法?

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

谢谢和问候, 萨卡尼亚

2 个答案:

答案 0 :(得分:18)

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

所以而不是:

using namespace z3;

你应该这样做:

using z3::context;

答案 1 :(得分:2)

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

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

  // some implementation

};