c – 模板参数包属性

前端之家收集整理的这篇文章主要介绍了c – 模板参数包属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有模板类:
template<int i>
class A
{
...
};

但是如何声明模板类的包装器:

template<int... is>
Pack
{

private:
    A<is...> attrs;
};

或者如何收集A类?

解决方法

以示例使用std :: tuple
#include <tuple>

template <int i>
class A
 { };

template <int... is>
class Pack
 { std::tuple<A<is>...>  attrs; };

int main()
 {
   Pack<2,3,5,7,11,13>  p;
 }

另一种方式可以是继承

template <int i>
class A
 { };

template <int... is>
class Pack : A<is>...
 { };

int main()
 {
   Pack<2,13>  p;
 }

猜你在找的C&C++相关文章