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
作为dst::dst_qux
?
除非我弄错了,否则using
声明和命名空间别名都不能完成其他两项。编写dst_baz()
的模板转发功能是一种可能性,但需要知道src_baz
的元数据。模板类型定义可能有dst_qux<T>::type
为src_qux<T>
,但间接性增加了详细程度。
FWIW,我的使用案例取名为somepackage_someportion_somefuncA
等C名称,并提供了名称友好的版本somepackage::someportion::somefuncA
,以便其他人为简洁起见可以使用using somepackage::someportion
。
是'#define'可行的选项吗? – iammilind 2012-02-01 04:22:31