私は持っています
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
名前をasdst::dst_baz
およびsrc::src_qux
asに変更できる(マクロ以外の)同等のものはありdst::dst_qux
ますか?
私が間違っていない限り、using
ステートメントも名前空間エイリアスも他の2つを達成することはできません。テンプレート化された転送関数を作成することdst_baz()
は可能ですが、のアリティに関する知識が必要ですsrc_baz
。テンプレートtypedefは可能性がありdst_qux<T>::type
ますsrc_qux<T>
が、間接参照により冗長性が追加されます。
FWIW、私のユースケースは、他の人々が簡潔にするために使用できるようsomepackage_someportion_somefuncA
に、名前空間に適したバージョンのようなC名を使用して提供しています。somepackage::someportion::somefuncA
using somepackage::someportion