您的位置:首页 > 编程语言 > C语言/C++

C++11学习笔记6---std::function

2015-10-29 11:11 218 查看
1.C++有哪些可调用对象

①函数

②函数指针

③lamdba表达式(CP5 P346)

④bind创建的对象(CP5 P354)

⑤重载了函数调用运算符的类(CP5 P506)

2.为什么要使用std::function

过程是一系列操作的抽象,有时我们需要对过程进一步抽象。

当5种对象具有相同的调用形式与返回类型时,我们希望对于C++的5种可调用对象不加区别地使用。

但是这5种可调用并不具有一致的类型(比如每一个个lambda表达式都有自己的类型),无法放入统一的容器中。

这个时候我们就可以使用std::function<T> f; 对这些可调用对象进行封装。

注:function<T>中的T不是一个具体的类,而是函数签名(包括函数的返回类型,参数列表)

比如T可以是int(int, int)或者是最简单的void()

2015/12/4补充

3.std::bind的作用

这个的作用就是将原本的一个可调用对象的一些参数绑定,生成另外一个可调用对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: