【发布时间】:2011-05-03 11:38:15
【问题描述】:
我明白了,我不应该在头文件中使用它:
using namespace foo;
因为它为使用我的头文件的任何人带来了全局范围内的命名空间 foo。
如果我在自己的命名空间中执行此操作,是否可以防止这种情况发生?比如这样:
namespace my_lib
{
using namespace foo;
// my stuff
// ...
}
现在 using 命名空间 foo 应该被限制在命名空间 my_lib 的范围内吧?
【问题讨论】:
-
请注意,这会将命名空间
foo的全部内容拖到命名空间my_lib中。这真的是您想要为您的用户提供的吗?它可能比污染全局命名空间更好,但你仍然在污染 a 命名空间... -
您只是想缩短命名空间吗?而不是
foo::bar::box::action()你想要my_lib::action()在这种情况下你想要的是命名空间别名namespace my_lib = foo::bar::box;
标签: c++ namespaces using