boost::bind
2015-10-28 21:45
162 查看
http://my.oschina.net/hevakelcj/blog/114440
http://www.cnblogs.com/sld666666/archive/2010/12/14/1905980.html
绑定普通函数
bind可以绑定普通函数,可以使用函数名或者函数指针,假设我们有如下的函数定义:
int f(int a,int b)
{
return a+b;
}
int g(int a,int b,int c)
{
return a + b*c;
}那么bind(f,1,2)将返回一个无参调用的函数对象,等价于f(1,2);bind(g,1,2,3)同样返回一个无参调用的函数对象,等价于g(1,2,3)。这两个绑定表达式没有使用占位符。
使用占位符bind可以有更多的变化,下面列出了一些占位符的用法:
bind(f,_1,9)(x); //f(x,9)
bind(f,_1,_2)(x,y); //f(x,y)
bind(f,_2,_1)(x,y); //f(y,x)
bind(f,_1,_1)(x,x); //f(x,x)
bind(g,_1,8,_2)(x,y); //g(x,8,y)
bind(g,_3,_2,_2)(x,y,z); //g(z,y,y)
http://www.cnblogs.com/sld666666/archive/2010/12/14/1905980.html
绑定普通函数
bind可以绑定普通函数,可以使用函数名或者函数指针,假设我们有如下的函数定义:
int f(int a,int b)
{
return a+b;
}
int g(int a,int b,int c)
{
return a + b*c;
}那么bind(f,1,2)将返回一个无参调用的函数对象,等价于f(1,2);bind(g,1,2,3)同样返回一个无参调用的函数对象,等价于g(1,2,3)。这两个绑定表达式没有使用占位符。
使用占位符bind可以有更多的变化,下面列出了一些占位符的用法:
bind(f,_1,9)(x); //f(x,9)
bind(f,_1,_2)(x,y); //f(x,y)
bind(f,_2,_1)(x,y); //f(y,x)
bind(f,_1,_1)(x,x); //f(x,x)
bind(g,_1,8,_2)(x,y); //g(x,8,y)
bind(g,_3,_2,_2)(x,y,z); //g(z,y,y)
相关文章推荐
- 关于apache tomcat的几个版本
- const ||c
- Java堆栈详解
- c++ 程序输入参数
- 最小生成树-Prim
- IOS--导航栏
- jQuery获取Select选择的Text(非表单元素)和 Value(表单元素)(转)
- HDU 1244 Max Sum Plus Plus Plus DP
- 系统安装相关:U盘刻录(用U盘装ubuntu简要方法)
- android studio 更改背景和设置字体大小
- win7提示“ipconfig不是内部或外部命令”
- 《大道至简第五章》
- 最短路径基础
- OC第一节--OC的基本
- win7提示“ipconfig不是内部或外部命令”
- ubuntu squid3 配置
- 高级学员:2015年10月24日作业
- hdu 4634 Swipe Bo(模拟+最短路)
- 寻找和为定值的递归算法
- Java Collections.EMPTY_LIST 和 Collections.emptyList()的区别