"使用命名空间#34;在命名空间中的标头

时间:2015-02-19 18:16:24

标签: c++ namespaces using

我知道之前已经提出了一个非常相似的问题,"using namespace" in c++ headers,但是我的问题是在命名空间内部。

namespace foo {
    using namespace std; // what does this do?

    class Bar { ... }
}

这是否与其他问题完全相同,只是在所有地方使用声明?它只在该命名空间中执行吗?它只在标题中执行吗?

1 个答案:

答案 0 :(得分:8)

有两点不同:

  1. 是的,using仅适用于foo命名空间内的代码。但这意味着所有foo代码都会看到此标题,因此您可能仍然不想这样做。
  2. 如果名称空间foo::std存在,嵌套的using语句将优先于::std