检查不完全类型
来源:互联网 发布:linux 二进制文件 编辑:程序博客网 时间:2024/06/06 23:17
看muduo库时候,对这里挺有疑问的。
检查不完全类型:
举例如下
//BB.h
//AA.cpp
当我们在AA.cpp中只声明了class BB,并没有对其定义,这时如果不调用deleteBB()编译器是不对其报错的,只是warning
AA.cpp: In member function ‘void AA::deleteBB(BB*)’:
AA.cpp:8:11: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
delete pb;
^
AA.cpp:6:21: warning: ‘pb’ has incomplete type
void deleteBB(BB* pb)
^
AA.cpp:2:7: note: forward declaration of ‘class BB’
class BB;
^
AA.cpp:8:11: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
delete pb;
我们应该尽量让错误在编译时出现,而不是在执行时,所用可以使用一下方法
如果BB是不完全类型那么sizeof(BB)就应该是0,type_must_be_complete[-1],数组是不能为负数的,所以就会报错也可以使用boost的checked_array_delete(T * x);在头文件checked_delete.hpp中;
源码:
- 检查不完全类型
- (void)sizeof(type_must_be_complete)检查不完全类型
- 不完全类型
- 不完全类型
- 不完全类型
- 不完全类型
- 不完全类型
- 电脑故障检查不完全流程图
- 第五章 不完全类型
- shared_ptr / unique_ptr不完全类型
- C++中的“不完全类型”
- 类型检查
- 类型检查
- 不完全类型(Partial Types)
- 不完全类型和复杂声明
- C++删除不完全类型数组
- 标准库:容纳不完全类型的容器
- c 结构体 字段的类型不完全
- 浅析HTML5的10大优势
- 半闲居士视觉SLAM十四讲笔记(6)非线性优化
- 介绍Windows的窗口、消息、子类化和超类化
- Ubuntu16.04安装matlab2017a
- 学习汇编的菜鸟的笔记
- 检查不完全类型
- Android开发问题集(1):使用databinding调用include文件
- mysql/mariadb-主从复制
- centos定时任务
- 关于大型网站技术演进的思考(九)--网站静态化处理--总述(1)
- Java基础08 继承
- C#泛型(二)——创建泛型类
- MongoDB数据量大,翻页报错,200多万
- 2017「CIS儿智展」,庆科信息VBS7100智能语音方案获“最佳少儿智能关键技术奖”