function可调用对象模版类

一、std::function介绍     

     std::function可调用函数对象模版类是一个函数包装器模版,该函数包装器模版能包装任何类型的可调用元素,如普通函数、函数指针、函数对象、普通函数模版、普通、成员函数、静态成员函数、静态成员函数模版等。包装器对象可以拷贝,包装器类型仅仅依赖于其调用特征,而不依赖于可调用元素自身的类型。

二、std::function定义

     template< class R, class... Args >

     class function;

     参数说明:

          R:调用函数返回值的类型

          Args:函数参数类型

三、使用详解

     1、可调用元素

function可调用对象模版类_第1张图片
图1 普通函数
function可调用对象模版类_第2张图片
图2 类成员函数
function可调用对象模版类_第3张图片
图3 类模版

  2、将std::function绑定到可调用元素

          1)绑定到普通函数

图4 绑定普通函数到可调用对象模版类

          2)绑定到函数模版

图5 绑定函数模版到可调用对象模版

          3)绑定到lambda表达式

图6 绑定lambda到可调用对象模版

          4)绑定到函数对象

图7  绑定函数对象到可调用对象模版

         5)绑定到类模版函数对象

图8 绑定类模版函数对象到可调用对象模版

          6)绑定到静态成员函数

图9 绑定静态成员函数到可调用对象模版

          7)绑定到静态成员模版函数

图10 绑定静态成员模版函数到可调用对象模版

          8)绑定到成员函数(this指针,不预绑定)

图11 绑定成员函数到可调用对象模版

          9)绑定到成员模版函数(this指针,不预绑定)


图12 绑定成员函数到可调用对象模版

四、详细代码参考

链接:https://pan.baidu.com/s/1qZbbKNM 密码:anm9

参考:

感谢:http://blog.csdn.net/xf_zhen/article/details/52224139

你可能感兴趣的:(function可调用对象模版类)