4

各ポリシーが独自のテンプレート パックを持つように、可変長のテンプレート テンプレート パラメーターを使用してポリシー クラスを組み合わせることが可能かどうか疑問に思っています。すべてのポリシーで 1 つのテンプレート パックしか共有できないようですが、そうでないことを願っています。

考えられるのは以下のようなものです。

template <
    class T,
    template <class, typename...>   class Policy1,
    template <class, typename...>   class Policy2,
    template <class, typename...>   class Policy3,
    typename... Args    
>
struct PolicyClass 
    : public Policy1     <ObjT, Args...>
    , public Policy2     <ObjT, Args...>
    , public Policy3     <ObjT, Args...>    {}

各ポリシーに独自のパックを持たせて、次のようなものを作成できることを願っています (?):

template <class T>
struct implementedPolicy1 {};
template <class T>
struct implementedPolicy2 {};
template <class T, class A>
struct implementedPolicy3 {};

PolicyClass <ObjT, 
             implementedPolicy1,
             implementedPolicy2,
             implementedPolicy3<AType>
            >

各ポリシーはすべて同じオブジェクト タイプを使用しているという考えですが、3 番目のポリシーにはさらにテンプレートがあります。上記のコードが正しくないことは承知しています - 私ができるようにしたいことを説明しようとしているだけです。

ありがとう

4

3 に答える 3