假设我有一个模板,它由一个类类型和一些参数类型参数化。一组匹配这些类型的参数存储在一个元组中。如何将这些传递给类类型的构造函数?
几乎在 C++11 代码中:
template<typename T, typename... Args>
struct foo {
tuple<Args...> args;
T gen() { return T(get<0>(args), get<1>(args), ...); }
};
构造函数调用中的...
不定长怎么填?
我想我可以想出一些复杂的递归模板调用机制来执行此操作,但我不敢相信我是第一个想要这个的人,所以我想会有现成的解决方案来这在那里,甚至可能在标准库中。
最佳答案
C++17 有 std::make_from_tuple
为此:
template <typename T, typename... Args>
struct foo
{
std::tuple<Args...> args;
T gen() { return std::make_from_tuple<T>(args); }
};
关于c++ - 来自元组的构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408802/