我如何将带参数包的模板class作为参数传递给其他模板class?

how can i pass template class which take parameter pack to other template class as a parameter?

我有类似的东西:

template<int ... args>
class X{};

并想将 class 作为参数传递给第二个模板 class。 现在我有:

template<class X<int... args1> el1, class X<int... args2> el2>
class Y{};

编译器向我抛出错误 Pack expansion does not contain any unexpanded parameter packs,我真的不知道我能做什么...我已经尝试了很多可能的 int ...args,但它仍然无法正常工作。我怎样才能让它发挥作用?

我想编译这样一段代码

Y<X<1,2>,X<3,4>> el;

您似乎在寻找 template template parameters,其语法如下:

template<template <int... args1> typename el1, 
         template <int... args2> typename el2>
class Y{};

注意pre-c++17,你必须在这里使用关键字class而不是typename