【问题标题】:Create std::tuple of types "contained" in another std::tuple在另一个 std::tuple 中创建类型“包含”的 std::tuple
【发布时间】:2015-04-13 13:53:40
【问题描述】:

我有一个从可变参数模板函数创建的std::tuple

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

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

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

换句话说,我想做一些类似(伪代码)的事情

std::tuple<typename args1::value_type,....> mynewtup(args1.f(),....);

可以这样做吗?怎么样?

【问题讨论】:

  • std::make_tuple(args.f()...) ?
  • 谢谢!你解决了我的问题:)
  • 哦,好吧。那么让我来回答一下吧。
  • 不会只是删除上面“这是我想做的”工作中的,s 吗?
  • 是的,你是对的。有了你的回答,我才注意到我的问题有多愚蠢!

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


【解决方案1】:

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

auto mynewtup = std::make_tuple(args.f()...);

【讨论】:

    猜你喜欢
    • 2019-06-15
    • 2021-10-16
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多