从另一个模板引用variadic模板参数包

时间:2017-02-21 18:07:08

标签: c++ templates c++14 variadic-templates

我有一个可变量模板类,用于定义类型集合

template <typename ... Types> class TypePack { };

多次实例化

typedef TypePack<T1, T2, T3> Pack1;
typedef TypePack<T1, T2, T4> Pack2;

我想引用其他模板中的TypePack参数

template <typename Pack> Client {
    static constexpr std::array<Foo, sizeof...(Pack::Types)> foos {
        make_foo<Pack::Types>()... 
    };
};
typedef Client<Pack1> Client1;
typedef Client<Pack2> Client2;

上面的代码显然是错误的并且没有编译。它只是为了说明我想要实现的目标。

我可以通过宏定义Pack1Pack2,但我觉得应该可以在C ++ 14中使用可变参数模板来实现它

1 个答案:

答案 0 :(得分:7)

您正在寻找的是部分专业化:

query_posts( array( 'category__and' => array(1,3), 'posts_per_page' => 2, 'orderby' => 'title', 'order' => 'DESC' ) );