は、テンプレートテンプレートパラメータと2つのポリシー定義を介して設定されたポリシーにテンプレートクラスCを考えてみましょう: テンプレートテンプレートパラメータが
template<class T> struct PolicyOne { };
template<class T, int U, int V> struct PolicyTwo { };
template<class T, template<class> class POLICY> struct C { POLICY<T> policy; };
void f()
{
C<int, PolicyOne> mc1;
C<int, PolicyTwo<1, 2> > mc2; // doesn't work this way
}
PolicyTwo
PolicyTwo
を
POLICY
テンプレートパラメータとして使用する方法はありますか?追加テンプレートパラメータのタイプを指定する場合は、
私はC++ 03を使用しているので、エイリアス宣言は利用できません。 私はthis questionを認識していますが、そこに私の問題の解決策はありません。
それは私が宣言することはできませんので、このソリューションは、私のために動作しません。 'T'とは独立して動作する' POLICY'のデフォルト値です。 –
@Gabriel Schreiberあなたのポリシーはテンプレートタイプのパラメータを無視して(そのタイプを公開しています)、単に 'T'とは独立して動作します。 –