テンプレートをパラメーター型に部分的にバインドする方法はありますか? たとえば、次のテンプレートがあります。
template<typename T, typename Q> struct generic { };
そして、テンプレートクラスをパラメーターとして受け取る別のテンプレートがあり、最初のタイプでそのインスタンスを作成できることを期待しています:
template<typename T, template<typename> class Impl>
struct wrapper {
Impl<T> foo;
};
これは、変更なしのような単純なテンプレートを受け入れtemplate<typename T>
ます。私が今やりたいことは、generic
テンプレートを部分的にバインドし、それのみQ
を指定して に渡すことwrapper
です。おそらく次のような構文を作成します。
template<typename T> bound = generic<T,some_type>;
継承を使用して、必要なものをほとんど取得できることを知っています。
template<typename T> bound : public generic<T,some_type> { };
ただし、基本クラスで定義されたコンストラクターと演算子で問題が発生するため、これを回避したいと考えています。