您的位置:首页 > 其它

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: