c++11 bind注意
来源:互联网 发布:怎么取消差评淘宝 编辑:程序博客网 时间:2024/06/08 07:37
c++11及boost中bind函数如果是引用的话,由于闭包原因所以引用还是做的一个拷贝解决办法:
使用ref库
bind采用拷贝的方式保存绑定对象和参数,这意味着绑定表达式中的每一个变量都会有一份拷贝,如果函数对象或值参数很大、拷贝代价很高,或者无法拷贝,那么bind的使用就会受到限制。因此bind库可以搭配ref库使用,ref库包装了对象的引用,可以让bind存储对象引用的拷贝,从而降低了拷贝的代价。但这也带来了一个隐患,因为有时候bind的调用可能会延后很久,程序员必须保证bind被调用时引用是有效的。如果调用是引用的变量或者函数对象你被销毁了,那么将会发生未定义行为。ref配合bind用法的代码如下:
std::map<int> _map;void OnDo(std::map<int> & _map,int flag){ //.....do some thing}boost::thread thrd(boost::bind(&OnDo,boost::ref(_map), flag));//获取已分析的数据thrd.yield();//自动运行thrd.join();
0 0
- c++11 bind注意
- C++bind
- [C++]C++11:Function与Bind
- [C++] C++11 bind 的用法
- 【C/C++】C++11新特性:std::bind
- C++bind小记
- bind server.c
- bind client.c
- bind query.c
- C++-----------------------------------------------------std::bind
- C++bind函数
- C++11 学习笔记 std::function和bind绑定器
- C++11 笔记 std::function,bind绑定器和lambda
- boost::bind And Objective-C
- spring:bind tag的一个要注意的问题
- 使用Mount bind时需要注意的权限问题
- Linux系统下socket通信注意之bind函数
- 【Linux网络编程】绑定( bind )端口需要注意的问题
- 简单入门Java反射
- 光标输入框定位和获取位置
- Oracle 11g ORA-28002:口令将过期的解决方法
- Linux vmstat命令实战详解
- HDU2027 统计元音
- c++11 bind注意
- 微信公众平台开发关于“该公众号暂时无法提供服务,请稍后再试”解决方案
- Win7系统上配置使用Intellij Idea 13的SVN插件
- map的查找
- 模板
- maven安装,maven配置,maven在eclipse中的配置(需要插件)
- 【软/自考】算法写作思路
- 浏览器内核分类
- 在二元树中找出和为某一值的所有路径