我正在尝试将可变参数模板参数存储在一个模板类中,并在另一个模板类中使用它们。类似的东西:
template<typename... Args>
struct A{
typedef Args... type; // heh
};
template<typename A_T>
struct B{
void foo(A_T::type... args){}
};
B<A<int,int> > b;
b.foo(2,3);
所有帮助表示赞赏!
答案 0 :(得分:3)
您无法将类型定义为多种类型!正如所有评论中所建议的std::tuple
是获得产品类型的正确方法。
typedef std::tuple<Args...> type; // instead of typedef Args... type;
实现通话
B<A<int,int> > b;
b.foo(2,3);
您可以稍微修改代码
template<typename... Args>
struct A{
};
template<typename A_T>
struct B{
};
template<template<typename...> class A_T, typename... Args>
struct B<A_T<Args...>>{
void foo(Args... args){
}
};