c++11:从模板函数构建 std::tuple

2024-06-05

我有以下功能:

template<class T>
T Check(int index);

我怎样才能写一个函数,CheckTuple,给定一个元组类型,通过调用填充一个元组Check?

例如:

CheckTuple< std::tuple<int, float, std::string> >()

将返回以下元组:

std::make_tuple( Check<int>(1), Check<float>(2), Check<std::string>(3) )

我看到的其他问题涉及解压给定的元组,而不是以这种方式构建元组。


使用 C++14 实现您正在寻找的内容变得非常简单integer_sequence http://en.cppreference.com/w/cpp/utility/integer_sequence。如果你没有可用的,这是一个 C++11 实现 https://gitorious.org/redistd/integer_seq/source/24293c100405bf3982732f53897b4beb962a9086:integer_seq.h写于乔纳森·韦克利 https://stackoverflow.com/users/981959/jonathan-wakely.

template<typename Tuple, int... I>
Tuple CallCheck(std::integer_sequence<int, I...>)
{
    return std::make_tuple(Check<typename std::tuple_element<I, Tuple>::type>(I)...);
}

template<typename Tuple>
Tuple CheckTuple()
{
    return CallCheck<Tuple>(std::make_integer_sequence<int, std::tuple_size<Tuple>::value>());
}

// Use it as 
auto tup = CheckTuple<std::tuple<int, float, std::string>>();

现场演示 http://coliru.stacked-crooked.com/a/5230fc856df021da

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++11:从模板函数构建 std::tuple 的相关文章

随机推荐

  • 使用magento中SOAP API的salesOrderInfo获取简单的产品sku和数量

    我在以下代码中添加了 app code core Mage Sales Model Order Api php File public function info orderIncrementId order Mage getModel s
  • 为什么使用参数化查询将数据插入表比将值附加到查询字符串更快?

    为什么使用参数化查询向表中插入数据 string queryString insert into product id name values id name 比将值附加到查询字符串更快 string queryString insert
  • getItemAtPosition() 未在列表视图中返回值

    我创建了一个自定义基本适配器类 用图像和文本填充列表视图 类的代码如下 public class ViewAdapter extends BaseAdapter private Activity activity private Strin
  • 二指针算法

    我想了解两指针算法方法 所以我一直在阅读本文 https tp iiita quora com The Two Pointer Algorithm 所以这是问题 假设我们有一个包含 N 个元素的数组 我们想要找到该数组中最大的连续元素序列
  • dplyr:取消选择由给出的列

    如何取消选择中给出的列 自写函数的参数 我还需要在另一点选择列 因此只需使用 in 没有解决我的问题 任何解决方案表示赞赏 select 帮助者 操纵者quosures或表达方式 very simple example data test
  • 停止 CSS 动画但让其当前迭代完成

    我有以下 HTML div class rotate div 以及以下 CSS webkit keyframes rotate to webkit transform rotate 360deg rotate width 100px hei
  • 在 NodeJs 中处理 Mongodb 全局连接的最佳方法是什么

    I using 节点 Mongodb Native https github com mongodb node mongodb native并尝试设置全局连接变量 但我对两种可能的解决方案感到困惑 大家能帮我看看哪一款比较好吗 1 解决方案
  • PHP 中 glob() 中的转义空格?

    我在 PHP 中有以下函数 除了名称中带有空格的文件外 该函数运行良好 Good picture jpg例如 这里是 function getphotolist currentalbum photos glob currentalbum J
  • 从 Joomla 3 url 中删除文章 ID

    我正在尝试从 Joomla 3 URL 中删除文章 ID 我四处搜寻 得到的答复是 组件 com content router php 将 0 更改为 1 advanced params gt get sef advanced link 1
  • 使用 CMake 和 clang 在 Windows 上构建简单的 C++ 项目

    我正在尝试在 Windows 10 上构建一个简单的 Hello World 程序 最好使用 CMake 和 clang 如果我使用 MinGW 的 g 编译器 我可以成功编译 链接和运行同一个项目 但当我尝试使用 clang 时会遇到问题
  • C/C++ 中自给自足的头文件

    我最近发布了一个问题 询问哪些行动将构成C 之禅 https stackoverflow com questions 1879034 what is the zen of c 我收到了很好的答案 但我无法理解一项建议 使头文件自给自足 你如
  • 撤消“从选择中创建新组”项目 xcode 4

    我不小心将我的项目添加到了一个组中 现在我无法在 xcode 4 中将其删除 有什么想法吗 如果我将其拖出 它会要求我创建一个工作区 编辑 我在错误报告中向苹果报告了这一点 我会及时向大家通报最新情况 这是一个没有工作空间的项目 关闭 Xc
  • 使用两列数据分割数据帧并对结果数据帧列表应用通用转换

    我想根据两列中的值将一个大数据帧拆分为一个数据帧列表 然后 我想对结果列表中的所有数据帧应用通用数据转换 滞后转换 我知道 split 命令 但只能让它一次处理一列数据 您需要将所有想要分割的因素放在一个列表中 例如 split mtcar
  • 什么是 iBeacon 蓝牙配置文件

    我想使用一些低功耗蓝牙开发套件创建自己的 iBeacon Apple 尚未发布 iBeacon 规范 但是 一些硬件开发人员已根据 AirLocate 示例代码对 iBeacon 进行了逆向工程 并开始销售 iBeacon 开发套件 那么
  • 如何正确设置服务器?

    我正在尝试制作一个在一段时间后更新的游戏服务器 import time last time time time tick 1 time since last update 0 while True new time time time dt
  • SignalR 1.01 中不需要 MapHub?

    我正在遵循 Signalr Wiki 中的集线器快速入门指南 我在 Global asax Application Start 行 RouteTable Routes MapHubs 上收到错误 名为 signalr hubs 的路由已在路
  • 将“选票”存储在数据库中

    我正在编写一个 Intranet 应用程序 其功能之一大致类似于内容投票 与 SO Amazon 和许多其他网站的做法不同 假设每个可投票的内容都有一个唯一的 ID 并且每个用户 他们经过身份验证 都有一个唯一的 ID 最简单的方法似乎是有
  • Windows 窗体 PictureBox.Image 为空,即使窗体中显示图像

    我正在尝试捕获此设备扫描的指纹 gt http www nitgen com eng product finkey html http www nitgen com eng product finkey html 我能够成功扫描指纹并保存二
  • 从字符串中提取整数

    从字符串中提取整数并将其保存到整数数组中的最佳和最短的方法是什么 示例字符串 65 865 1 3 5 65 234 65 32 我尝试查看其他一些帖子 但找不到有关此特定问题的帖子 一些帮助和解释会很棒 看来这一切都可以完成std str
  • c++11:从模板函数构建 std::tuple

    我有以下功能 template