c++11 lamda
来源:互联网 发布:网络回拨电话原理 编辑:程序博客网 时间:2024/06/08 15:56
c++ RAII 其实是个挺头疼问题。c++11lamda来了问题迎刃而解。
举个例子:
void f()
{
HANDLE f1 = openFile("a.txt");
if(!f1) return ;
HANDLE f2 = openFile("b.txt");
if(!f2){
CloseHandle(f1);
return ;
}
pass
CloseHandle(f1);
CloseHandle(f2);
}
百密一疏总有时候少了个CloseHandle。然后句柄泄漏,blablabla,procexp查看句柄,windbg hook,看代码找代码。
当然你可以try finally,可惜不是我的菜.
c++11 来了。
class cf
{
cf(std::function<void()> f):f_(f){}
~cf(){
f_();
}
std::function<void()> f_;
}
void f()
{
HANDLE f1 = openFile("a.txt");
HANDLE f2 = openFile("b.txt");
cf cf_([&](){
if(f1){
CloseHandle(f1);
}
if(f2){
CloseHandle(f2);
}
});
pass
}
管他内存、句柄、自定义资源等等全ok
0 0
- C++Lamda表达式
- C#lamda表达式求最大值
- c++ 11 lamda表达式
- c++11 lamda
- Lamda
- C++11(二):lamda表达式
- (11)委托和Lamda表达式
- (11)委托和Lamda表达式
- c++ 11 lamda表达式语法整理
- lamda表达式
- lamda表达式
- python lamda
- Python lamda
- Lamda表达式
- Lamda进化史
- Sarsa-Lamda
- lamda表达式
- lamda表达式
- opencv目标跟踪-Camshift应用
- 使用AFNetworking3.0封装网络请求
- 注解形式控制器 数据验证,类型转换(2)
- 把机器wifi高级设置项中被屏蔽的【始终】菜单打开,不然机器熄屏以后会断wifi)
- Struts2-类型转换器-Converter
- c++11 lamda
- monkey自动化测试与持续集成方案--Android crash 收集
- AFN3.0中文件的下载和上传
- JAVA的二叉树
- 注解形式控制器 数据验证,类型转换(3)
- 【Linux 系统编程】shell 脚本基础学习(一)
- Java多线程学习
- 出现/usr/bin/ts_calibrate: not found问题
- Linux中部署Java环境--安装JDK