"using namespace" in header in namespace
"using namespace" in header in namspace
我知道之前有人问过一个非常相似的问题,"using namespace" in c++ headers,但我的问题是在命名空间内部。
namespace foo {
using namespace std; // what does this do?
class Bar { ... }
}
这是否与另一个问题所说的完全相同,只是在所有地方都包含 using 语句?它只在该名称空间中执行吗?它只在header吗?
有两个区别:
- 是的,
using
仅适用于 foo
命名空间内的代码。但这意味着所有 foo
代码都看到这个 header,所以你可能仍然不想这样做。
- 如果命名空间
foo::std
存在,嵌套的 using
语句将优先于 ::std
。
我知道之前有人问过一个非常相似的问题,"using namespace" in c++ headers,但我的问题是在命名空间内部。
namespace foo {
using namespace std; // what does this do?
class Bar { ... }
}
这是否与另一个问题所说的完全相同,只是在所有地方都包含 using 语句?它只在该名称空间中执行吗?它只在header吗?
有两个区别:
- 是的,
using
仅适用于foo
命名空间内的代码。但这意味着所有foo
代码都看到这个 header,所以你可能仍然不想这样做。 - 如果命名空间
foo::std
存在,嵌套的using
语句将优先于::std
。