C++ 构造变量元组的参数堆栈

C++ 构造变量元组的参数堆栈,c++,tuples,c++14,variadic-templates,C++,Tuples,C++14,Variadic Templates,我有一个包含可变元组的类,但需要自己构造参数堆栈。有人能告诉我怎么做吗?元组元素没有默认构造函数 简化的代码如下所示: #include <tuple> struct base {}; template<class T> struct elem { elem(base*){} elem() = delete; }; template<class... ARGS> struct foo : base { foo() : t( /*

我有一个包含可变元组的类,但需要自己构造参数堆栈。有人能告诉我怎么做吗?元组元素没有默认构造函数

简化的代码如下所示:

#include <tuple>

struct base {};

template<class T>
struct elem
{
    elem(base*){}
    elem() = delete;
};

template<class... ARGS>
struct foo : base
{
    foo() : t( /* initialize all elems with this */) {}
    std::tuple<elem<ARGS>...> t;
};


int main()
{
    foo<int, double> f;
}
#包括
结构基{};
模板
结构元素
{
元素(基*){}
elem()=删除;
};
模板
结构foo:base
{
foo():t(/*使用此*/)初始化所有元素{}
std::元组t;
};
int main()
{
福福;
}
#包括
模板
结构foo:base
{
foo():t(得到这个

你可以做:

template<class... ARGS>
struct foo : base
{
    foo() : t(elem<ARGS>(this)...) {}
    std::tuple<elem<ARGS>...> t;
};
模板
结构foo:base
{
foo():t(elem(this)…{}
std::元组t;
};

哦,这很简单。感谢大家的帮助。
template<class... ARGS>
struct foo : base
{
    foo() : t(elem<ARGS>(this)...) {}
    std::tuple<elem<ARGS>...> t;
};