我如何将带参数包的模板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
。
我有类似的东西:
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
。