我有
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_quxas 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简洁。