【发布时间】:2016-06-10 05:32:59
【问题描述】:
我有一个接受可变参数模板参数的模板类。
template <typename... Args>
class Element
{
public:
typedef std::tuple<Args...> Tuple;
Element(const Args&... args)
: mArgs(args...)
{
}
Tuple mArgs;
};
是否可以从元组中获取 Args... 以及如何获取?
所以我能够在这样的情况下使用相同的构造函数:
Element<Foo, Bar> element1(foo, bar);
Element<Foo, Bar> element2( magic(element1.mArgs) );
【问题讨论】:
-
看看 std::tie 但你必须知道参数是什么类型。
-
看来你想要
Element(const Tuple& t) : mArgs(t) {}。 -
是的,第二个构造函数就可以了。不幸的是,这是一个基类,很多地方都需要提供第二个构造函数,...我希望找到一种方法来避免。