简介

std::result_of<Function(Args...)>::type 简而言之就是推断

Function(Args...) 这个函数的返回值类型,用在模板函数中

参考链接

https://blog.csdn.net/zhouguoqionghai/article/details/45789295

引用

result_of() 函数使用到了模板元编程技术,对于 F(Arg1, Arg2... Arg3) ,其中F 是一个可调用对象(函数指针,函数引用, 成员函数指针,或者是函数对象)f 的类型,Arg是其参数arg1, arg2 的类型。 那么reslut_of <Func(Arg1, Arg2... Arg3)> :: type 表示的也就是 f(arg1,arg2 ... argn)的返回值的类型。

http://www.cplusplus.com/reference/type_traits/result_of/ (C++官网的知识链接)

引用

Obtains the result type of a call to Fn with arguments of the types listed in ArgTypes.

获得函数Fn在所带参数的返回值类型

code

#include <iostream>
#include <type_traits> int fn(int) {return int();} // function
typedef int(&fn_ref)(int); // function reference
typedef int(*fn_ptr)(int); // function pointer
struct fn_class { int operator()(int i){return i;} }; // function-like class int main() {
typedef std::result_of<decltype(fn)&(int)>::type A; // int
typedef std::result_of<fn_ref(int)>::type B; // int
typedef std::result_of<fn_ptr(int)>::type C; // int
typedef std::result_of<fn_class(int)>::type D; // int std::cout << std::boolalpha;
std::cout << "typedefs of int:" << std::endl; std::cout << "A: " << std::is_same<int,A>::value << std::endl;
std::cout << "B: " << std::is_same<int,B>::value << std::endl;
std::cout << "C: " << std::is_same<int,C>::value << std::endl;
std::cout << "D: " << std::is_same<int,D>::value << std::endl; return 0;
}

C++11 result_of 学习的更多相关文章

  1. 201521123082 《Java程序设计》第11周学习总结

    201521123082 <Java程序设计>第11周学习总结 标签(空格分隔):java 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. Answe ...

  2. 201521123067 《Java程序设计》第11周学习总结

    201521123067 <Java程序设计>第11周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线 ...

  3. 201521123045 <java程序设计>第11周学习总结

    201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...

  4. 2018面向对象程序设计(Java)第11周学习指导及要求

    2018面向对象程序设计(Java)第11周学习指导及要求 (2018.11.8-2018.11.11)   学习目标 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API: ...

  5. 20172333 2017-2018-2 《Java程序设计》第11周学习总结

    20172333 2017-2018-2 <Java程序设计>第11周学习总结 教材学习内容 对于Android Studio的安装以及对安卓的一些基本组成,比如说四大组件Acticity ...

  6. 20145202马超 2016-2017-2 《Java程序设计》第11周学习总结

    20145202马超 2016-2017-2 <Java程序设计>第11周学习总结 教材学习内容总结 XX 教材学习中的问题和解决过程 教材学习有问题先去https://shimo.im/ ...

  7. C++11并发学习之三:线程同步(转载)

    C++11并发学习之三:线程同步 1.<mutex> 头文件介绍 Mutex又称互斥量,C++ 11中与 Mutex 相关的类(包括锁类型)和函数都声明在 <mutex> 头文 ...

  8. 面向对象程序设计(JAVA) 第11周学习指导及要求

    2019面向对象程序设计(Java)第11周学习指导及要求 (2019.11.8-2018.11.11)   学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接 ...

  9. 20175316盛茂淞 2018-2019-2 《Java程序设计》第11周学习总结

    20175316 <Java程序设计> 第11周学习总结 教材内容学习总结 第十三章 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用UR ...

  10. 20175212童皓桢 《Java程序设计》第11周学习总结

    20175212童皓桢 <Java程序设计>第11周学习总结 教材学习内容总结 一.URL类 1.一个URL对象通常包含最基本的三部分信息:协议.地址.资源 2.构造方法: public ...

随机推荐

  1. Cookie,Session与Token

    参考资料 水平有限,欢迎交流!仅做学习交流使用 一定要看,非常透彻![Cookie.Session.Token究竟区别在哪?如何进行身份认证,保持用户登录状态?] 黑马jwt详解 Javaweb程序设 ...

  2. 从 MySQL 获取数据,是从磁盘读取的吗?(buffer pool)

    从 MySQL 获取数据,是从磁盘读取的吗?(Buffer Pool) 在 MySQL 中,数据是否从磁盘读取取决于数据是否已经被加载到内存中.MySQL 使用 InnoDB 存储引擎 中的 Buff ...

  3. Quill自定义插入视频video实例

    import Quill from 'quill' const BlockEmbed = Quill.import('blots/block/embed') class VideoBlot exten ...

  4. Python实验1 温度转换与输入输出强化

    实验任务: 实现摄氏温度与华氏温度互转(保留两位小数) 扩展功能:输入错误处理(如非数字输入提示重新输入) 扩展:支持开尔文温度的三向转换 源代码:def c_to_f(c): return c * ...

  5. Nacos源码—1.Nacos服务注册发现分析一

    大纲 1.客户端如何发起服务注册 + 发送服务心跳 2.服务端如何处理客户端的服务注册请求 3.注册服务-如何实现高并发支撑上百万服务注册 4.内存注册表-如何处理注册表的高并发读写冲突 1.客户端如 ...

  6. 轮播图导航组件 | 纯血鸿蒙组件库AUI

    摘要: 轮播图导航(A_SwiperNav):实现沉浸式体验的App全屏轮播引导页效果.可设置图片数据(含文本.图片地址.路由.标题.子标题),可设置按钮颜色. 一.在页面当中调用轮播图导航组件 打开 ...

  7. python3验证手机号码

    import redef check_phone_right(self, phone_number): """检测号码是否正确""" pho ...

  8. JVM 使用mat分析Dump文件排查大对象解决系统full GC问题

    摘要:介绍内存分析工具Mat查找大对象的使用方法,定位full GC根源,拉升系统吞吐量,避免内存泄漏. 引言   线上服务器频繁发生full GC,直接拉低系统吞吐量,甚至OOM.今天我们来一起学习 ...

  9. 代码随想录第九天 | 栈与队列part01

    那很好了,时间来到了第九天, 理论基础 了解一下 栈与队列的内部实现机制,文中是以C++为例讲解的. 文章讲解:https://programmercarl.com/栈与队列理论基础.html 232 ...

  10. 洛谷 SP116 INTERVAL - Intervals

    洛谷 SP116 INTERVAL - Intervals 节选自拓扑差分约束学习笔记.如果您想学习差分约束的话不妨看看~ Problem 从\(0\sim50000\)选出最少的数,使每个区间至少有 ...