template <typename T1, typename T2>
class Base
{
T1 t1;
T2 t2;
};
template <typename...TN>
class Derived
: public Base< std::tuple<QList<TN...>>,
std::tuple<QVector<TN...>> > //does not work
{
};
Derived<int, double> d;
t1
将成为std::tuple<QList<int>, QList<double>>
t2
将成为std::tuple<QVector<int>, QVector<double>>
我不知道这是否可能。目前我使用预处理器魔术。但我希望可变参数模板也能做到这一点。那么,我可以做任何递归的事情或任何类似的提取模板吗?
答案 0 :(得分:1)
正如@dyp所说,你在错误的地方扩展了包。它应该是这样的:
: public Base< std::tuple<QList<TN>...>,
std::tuple<QVector<TN>...> >