【发布时间】:2021-01-01 06:53:17
【问题描述】:
在我的代码中我写了好几次类似
// all these using
using this::is::a::very::long::name::space::var1;
using this::is::a::very::long::name::space::var2;
using this::is::a::very::long::name::space::var3;
using this::is::a::very::long::name::space::fun1;
using this::is::a::very::long::name::space::fun2;
// to make this line cleaner
fun1(var1,fun2(var2,var3));
因为我不想让该命名空间中的任何名称可用,除了我列出的 5 个名称。
C++ 是否提供任何东西来使用所有这些名称,而不必一遍又一遍地编写范围的公共部分?
【问题讨论】:
-
这能回答你的问题吗? In C++, what is a "namespace alias"?
-
我不太确定这是不是重复的。这不是关于缩短命名空间,而是询问一种减少
using声明数量的工具,就像python 拥有from package import x, y, z一样。 C++ 没有这样的工具,但这并没有真正使问题成为“什么是命名空间别名”的重复 -
我看到了一些使用复杂宏功能的宏功能,它可以让你做
USING(this::is::a::very::long::name::space, var1, var2, var3, fun1, fun2)...但我认为“治疗”比它试图解决的问题更糟糕(因为我讨厌宏)。
标签: c++ namespaces