在另一个std :: tuple中创建“包含”类型的std :: tuple

时间:2015-04-13 13:53:40

标签: c++ c++11 tuples metaprogramming variadic-templates

我从可变参数模板函数

创建了std::tuple
std::tuple<Args&...> mytup(args...);

args中的每个对象都定义了一个类型value_type

现在,我想创建一个名为std::tuple的{​​{1}} mynewtup,其长度与mytup相同,但类型不同value_type。此外,每个args都有一个方法f(),它返回value_type,并且需要创建mynewtup来调用该函数。

换句话说,我想做(伪代码)

之类的事情
std::tuple<typename args1::value_type,....> mynewtup(args1.f(),....);

有可能吗?怎么样?

1 个答案:

答案 0 :(得分:2)

只需使用std::make_tuple,如下所示:

auto mynewtup = std::make_tuple(args.f()...);
相关问题