在 namspace 的标头中"using namespace"

"using namespace" in header in namspace

本文关键字:using namespace namspace      更新时间:2023-10-16

我知道以前有人问过一个非常相似的问题,"使用名称空间";在c++标头中,但我的是当它在命名空间内部时。

namespace foo {
    using namespace std; // what does this do?
    class Bar { ... }
}

这是否和另一个问题所说的完全一样,只是在所有地方都包含了使用语句?它只在那个命名空间中执行吗?它只在那个标题中执行吗?

有两个区别:

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