在另一个 std::tuple 中创建类型 "contained" 的 std::tuple
Create std::tuple of types "contained" in another std::tuple
我有一个 std::tuple
从可变模板函数创建的
std::tuple<Args&...> mytup(args...);
args
中的每个对象都定义了一个类型 value_type
。
现在,我想创建一个名为 mynewtup
的 std::tuple
,其长度与 mytup
相同,但类型不同 value_type
。此外,每个 args
都有一个方法 f()
需要创建 return 一个 value_type
和 mynewtup
来调用该函数。
换句话说,我想做类似(伪代码)
std::tuple<typename args1::value_type,....> mynewtup(args1.f(),....);
可以吗?怎么样?
只需使用std::make_tuple
如下:
auto mynewtup = std::make_tuple(args.f()...);
我有一个 std::tuple
从可变模板函数创建的
std::tuple<Args&...> mytup(args...);
args
中的每个对象都定义了一个类型 value_type
。
现在,我想创建一个名为 mynewtup
的 std::tuple
,其长度与 mytup
相同,但类型不同 value_type
。此外,每个 args
都有一个方法 f()
需要创建 return 一个 value_type
和 mynewtup
来调用该函数。
换句话说,我想做类似(伪代码)
std::tuple<typename args1::value_type,....> mynewtup(args1.f(),....);
可以吗?怎么样?
只需使用std::make_tuple
如下:
auto mynewtup = std::make_tuple(args.f()...);