std::function,std::bind复习
#include <iostream>
#include <functional>
//std::bind返回函数对象
void fun1(int a, int b)
{
std::cout << a << b << std::endl;
}
using namespace std::placeholders; class A
{
public:
void fun2(int a, int b)
{
std::cout << a << b << std::endl;
}
};
int main()
{
//第一种用法,直接绑定实参
std::bind(fun1, , )();//调用时把1,2的拷贝作为实参传递给fun1,bind中绑定的参数必须与fun1调用的参数个数相同,参数将会传递给fun1作为入参 //占位符_1的用法,在函数调用时才接受正真的参数
std::bind(fun1, _2, _1)(, );//占位符的名字表示在调用式中顺序,这个表示fun1(2, 1) //绑定成员函数
A a;
std::bind(&A::fun2, a, _1, _2)(, );//需要传递类似this指针的东西让这个函数对象调用&必须加 //functon用法,这个最多的用法可以存储bind返回的结果,在以后再需要的时候回调,是一种回调机制
std::function<void(int, int)> func;//function可以存储函数指针对象,之前以为只能存储std::bind
func = fun1;
func(, ); //function调用成员函数
//1.在function中写类名称
std::function<void(A&, int, int)> fun1;//可以赋值int,int返回为void的成员函数
fun1 = std::bind(&A::fun2, _1, _2, _3);
fun1(a, , );
//2.在bind里面写类实例,这种方式比较多
std::function<void(int, int)>fun2;
fun2 = std::bind(&A::fun2, a, _1, _2);
fun2(, ); getchar();
return ;
}
std::function,std::bind复习的更多相关文章
- c++11——std::function和bind绑定器
c++11中增加了std::function和std::bind,可更加方便的使用标准库,同时也可方便的进行延时求值. 可调用对象 c++中的可调用对象存在以下几类: (1)函数指针 (2)具有ope ...
- C++11 学习笔记 std::function和bind绑定器
C++11 学习笔记 std::function和bind绑定器 一.std::function C++中的可调用对象虽然具有比较统一操作形式(除了类成员指针之外,都是后面加括号进行调用),但定义方法 ...
- C++中的仿函数,std::function和bind()的用法
1.仿函数:又叫std::function,是C++中的一个模板类 2.C语言中的函数指针: int add(int a,int b) { return a+b; } typedef int (*f ...
- C++ 11 std::function std::bind使用
cocos new 出新的项目之后,仔细阅读代码,才发现了一句3.0区别于2.0的代码: auto closeItem = MenuItemImage::create( "CloseNorm ...
- C++11学习笔记之三lamda表达式,std::function, std::bind
//lamda //first lamda [] {}; // second lamda []() //or no need () when paramater is null { std::cout ...
- 【浅析C++11】std::function和std::bind
目录 std::function可调用对象包装器 std::function基本用法 std::function/std::bind与抽象工厂.工厂方法的一点思考 std::function可调用对象 ...
- C/C++ C++ 11 std::function和std::bind用法
std::bind() std::bind 主要用于绑定生成目标函数,一般用于生成的回调函数,cocos的回退函数都是通过std::bind和std::function实现的.两个点要明白: 1.绑定 ...
- 2.cocos2dx 3.2在语法的差异,lambada使用表达式和function和bind使用功能
1 打开 - 内置T32 Cocos2dx-3.2一个专案 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhb ...
- 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用
1 打开建好的T32 Cocos2dx-3.2的一个项目 2 设置Cocos显示窗口的位置是在AppDelegate.cpp中: 3 设置自适应窗口大小的代码是在上面的 ...
随机推荐
- PHP数组在HTML之中的应用
<select name="data[status]" id="" <?php if(in_array($list['status'],array( ...
- mysql事件调度器定时删除binlog
MySQL5.1.6起Mysql增加了事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由Linux操作系统的计划任务来执行的工作MySQL的事件调度器可以精确 ...
- php5.5新函数array_column
php5.5新增了一个新的数组函数,感觉挺使用的,低版本的实现按照如下实现 if(!function_exists('array_column')){ function array_column($i ...
- DevExpress 关于 GridView 表格编辑中 点击其他按钮里导致 值未取到处理
只需要给添加以下代码 在执行其他按钮前调 用一下 就可以了:主要是用来关闭编辑以及更新当前行编辑内容 this.gridControl1.FocusedView.CloseEditor(); this ...
- 数据结构学习笔记05图(最小生成树 Prim Kruskal)
最小生成树Minimum Spanning Tree 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 树: 无回路 |V|个顶 ...
- WIFI 物理组件
物理组件参考:http://book.51cto.com/art/201404/435813.htm SDIO总线参考:此总线sd卡连接也有关系.(http://www.linuxidc.com/Li ...
- hdu 1316 How Many Fibs?
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1316 How Many Fibs? Description Recall the definition ...
- hdu 1908 Double Queue
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1908 Double Queue Description The new founded Balkan ...
- jdk 1.5
1995.5.23 java语言诞生 sun公司推出java语言的同时,也推出了一系列的开发工具,比如JDK(java development Kit)JVMjava API 时间 版本 API 用途 ...
- CDN 内容分发网络技术
1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...