WTF之隐式布尔类型转换
来源:互联网 发布:360软件下载大全 编辑:程序博客网 时间:2024/04/30 09:14
原文:http://blog.sina.com.cn/s/blog_71b5e2520100qxhu.html
在webkit中经常会看到类似于如下的代码:
该段代码的作用是,隐式布尔类型转换,即当RefPtr在条件表达式中求值时,依赖于其成员m_ptr是否为空。下面来分析一下这两行代码:
第1行,利用typdef定义了UnspecifiedBoolType类型,该类型是一个指向成员的指针类型。在这里它指向RefPtr的成员,该成员的类型为T*。
第2行,是个用户自定义转换函数,将RefPtr类类型转换为UnspecifiedBoolType类型,其转换意义是,返回RefPtr::m_ptr的地址。
这里利用指向成员的指针,一方面,如代码中的注释所言,避免了隐式转换为其他整型类型;另一方面,指向成员的指针不能隐式或显示转换为常规的指针类型,所以避免了如下问题:
RefPtr<SomeType> s;
delete s;
相关资料:
1.《Imperfect C++》第24章对operator bool()有详细介绍
- WTF之隐式布尔类型转换
- 在PHP中类型转换之布尔类型
- 那些数据可以通过隐式转换成布尔Boolean类型数据?最全面总结,终极版!!!
- JavaScript类型转换之隐式类型转换
- Objective-C学习笔记-之布尔类型
- 每天学点Python之布尔类型
- python3 数据类型之 整型、布尔类型、字符串
- 数据类型之 整型、布尔类型、字符串
- 布尔类型
- 布尔类型
- 布尔类型
- 布尔类型
- 布尔类型
- WTF
- Bug 之 隐式类型转换
- javascript下将字符类型转换成布尔值
- javaScript学习(一)——js布尔类型转换
- Struts2-->布尔值(boolean)类型转换注意问题
- 农民伯伯 内容相当丰富!
- Spring中的Bean配置说明
- C/C++中移位实现乘除法运算
- 从雅安抗灾看互联网公司的竞争力
- Android基础教程(二)之五大布局对象---FrameLayout,LinearLayout ,AbsoluteLayout,RelativeLayout,TableLayout.
- WTF之隐式布尔类型转换
- C++中的 友元函数、友元类
- _IO, _IOR, _IOW, _IOWR 宏的用法与解析
- 在WIN7旗舰版下装oracle10g 详细
- 图像处理中卷积与模板
- 多设备的Web布局模式
- 标准库string类型
- IOS6屏幕旋转问题总结 .
- listView下拉刷新(仿sina微博Android客户端效果)