我有
namespace src {
struct src_bar;
void src_baz();
template<class T> class src_qux;
}
我想将其称为
namespace dst {
struct dst_bar;
void dst_baz();
template<class T> class dst_qux;
}
这意味着我想从src
.
对于dst_bar
一个当然可以使用namespace dst { typedef src_bar dst_bar; }
. 是否有一些(非宏)等价物允许我重命名src::src_baz
为dst::dst_baz
和src::src_qux
as dst::dst_qux
?
除非我弄错了,否则using
语句和命名空间别名都不能完成另外两个。为 编写模板转发函数dst_baz()
是一种可能,但需要了解src_baz
. 模板类型定义可能有dst_qux<T>::type
,src_qux<T>
但间接增加了冗长。
FWIW,我的用例是采用 C 名称,somepackage_someportion_somefuncA
并提供一个命名空间友好的版本somepackage::someportion::somefuncA
,以便其他人可以使用using somepackage::someportion
简洁。