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