当前位置: 首页 > news >正文

1. std::result_of是什么?为什么它出现?

C++11中的std::result_of是一个专门用来推导函数调用返回类型的模板工具,它解决了在模板编程中“我不知道某个函数对象调用后返回什么类型”的难题。

1. std::result_of是什么?为什么它出现?

在传统C++里,如果你写一个模板函数调用另一个函数对象,你往往不知道那个函数调用会返回什么类型。比如:

    template<typename Func, typename Arg>
auto invoke(Func f, Arg a) -> /* 返回类型? */ {return f(a);
}

这里,invoke想调用f(a),但怎么写返回类型呢?C++11之前只能写成typename Func::result_type(依赖函数对象定义)或者自己写死,显然不够灵活。

std::result_of就是为了解决这个问题而生的。它能在编译期推导出调用Func带参数Arg后返回的类型,形式是:

    typename std::result_of<Func(Arg)>::type

它告诉编译器:“帮我算出调用Func传入Arg后返回的类型是什么。”
个人教程网站内容更丰富:(https://www.1217zy.vip/)

相关文章:

  • c++存储持续性和链接性
  • Netty的内存池机制怎样设计的?
  • Webug4.0靶场通关笔记15- 第19关文件上传(畸形文件)
  • 服务器端的准备工作
  • 求解器介绍之gurobi
  • Linux电源管理(6)_Generic PM之挂起功能
  • 【自然语言处理与大模型】LlamaIndex的数据连接器和对话引擎
  • 二、Python变量基础(2)
  • 30天开发操作系统 第27天 -- LDT与库
  • 工业主义与民主的兴衰:历史逻辑与未来危机
  • uniswap v4 合约解析1 pool初始化
  • VTK 数据结构和算法类介绍
  • pyqt写一个单片机配置界面
  • 基于YOLOv的目标检测训练数据构建方法研究—图像采集、标注、划分与增强一体化流程设计
  • java单元测试代码
  • Python中的JSON库,详细介绍与代码示例
  • 《RESTful API版本控制的哲学思辨:稳定性与创新性的终极平衡》
  • Node.js 是什么?
  • 深入理解 TensorFlow 的模型保存与加载机制(SavedModel vs H5)
  • 蓝桥杯单片机国赛模板——基于柳离风模板
  • 体坛联播|米兰逆转热那亚豪取3连胜,阿诺德官宣离开利物浦
  • 听炮检书:柳诒徵1927年的选择
  • 李公明 | 一周画记:生活就是抵抗
  • 五一假期,新任杭州市委书记刘非到嘉兴南湖瞻仰红船
  • 上海浪琴环球马术冠军赛明日启幕!五一假期在这里感受精彩
  • 龚惠民已任江西省司法厅党组书记