boost bind库一个重要的知识点
来源:互联网 发布:js escape 解码 编辑:程序博客网 时间:2024/05/22 02:33
bind(&function,_1,_2)(arg1,arg2);
以这种形式bind的话,会立即将两个参数传给函数,并执行这个函数.
从本质上讲,bind是建立一个函数对象(这个函数对象可以赋给boost::function对象),再将两个参数传过去.
但是如果直接将两个参数放到占位符相应位置
bind(&function,arg1,arg2);
后边没有绑定参数的话,它只建立一个函数对象,而不会执行这个上参数.
下边看这个例子:
std::sort(vec.begin(),vec.end(),boost::bind(std::less<unsigned int>(),boost::bind(&personal_info::age,_1),boost::bind(&personal_info::age,_2),));
那这次大家说这个std::less<unsigned int>();有没有被执行呢?怎么解释呢?我对内部机制不了解,这里其实是会被执行的,这里再给个简单一些的例子.
void general_function(int arg1,int arg2,int arg3){ std::cout<<arg1+arg2+arg3;}int add(int a,int b){ return a+b;} boost::bind( &general_function, boost::bind(&add, _1, 2), 2, 3 )(1);
这个形式就好看了,这里呢从形式上来讲,外层的bind已经给提供参数了,传递进去又提供给里层的bind,所以general_function就会被执行了.
- boost bind库一个重要的知识点
- 【Boost】boost库中bind的用法
- 【boost】boost::bind的使用
- Boost库bind函数的嵌套调用
- boost库中bind的用法
- boost库bind的一些用法
- boost库 bind/function的使用
- boost库 bind/function的使用
- boost库 bind/function的使用
- Boost库之bind的使用
- boost库 bind/function的使用
- boost::bind的使用
- boost bind的使用
- boost::bind的使用方法
- boost::bind的使用方法
- boost bind的使用
- Boost.bind 的使用
- boost::bind的使用方法
- [转]关于vim,ctags的使用
- Oracle查看、修改连接数
- 也谈动态规划~~
- html与XML document使用
- 设置panel标题高度
- boost bind库一个重要的知识点
- 找工作时牢牢记住这些
- 使用存储过程对table,index进行统计, 优化查询计划
- 手机防盗软件
- ORA-12518 TNS:监听程序无法分发客户机连接 解决办法(转)
- 两种获取灰度图像的方法
- C语言中scanf的问题
- 解析C++中的内部连接与外部连接
- 使用CTabCtrl控件实现属性页功能