boost::checked_delete作用介绍
2011-02-17 10:43
225 查看
C++标准(版本5.3.5/5)允许使用delete删除incomplete class types指针,但如果class的析构函数有特定数据操作,或者具有自定义的operator delete成员函数,那么删除指针的操作将导致不确定后果。
这个问题同样存在于smart pointer的析构函数中,比如:boost::scoped_ptr<T>::~scoped_ptr,如果T是一个incomplete type,那么可能会造成极隐秘的诡异错误。
boost提供了2个函数模版与2个类模板工具来解决这个问题,在<boost/checked_delete.hpp>中定义了checked_delete and checked_array_delete 函数模版,以及checked_deleter and checked_array_deleter类模板。这些函数和类要求传给他们的参数是complete type,否则将导致编译错误。
boost文档:checked_delete.hpp
这个问题同样存在于smart pointer的析构函数中,比如:boost::scoped_ptr<T>::~scoped_ptr,如果T是一个incomplete type,那么可能会造成极隐秘的诡异错误。
boost提供了2个函数模版与2个类模板工具来解决这个问题,在<boost/checked_delete.hpp>中定义了checked_delete and checked_array_delete 函数模版,以及checked_deleter and checked_array_deleter类模板。这些函数和类要求传给他们的参数是complete type,否则将导致编译错误。
boost文档:checked_delete.hpp
相关文章推荐
- boost::checked_delete作用介绍
- boost::checked_delete作用介绍
- boost::checked_delete作用介绍
- C++学习 boost学习之checked_delete
- boost::checked_delete
- checked_delete问题: Beyond the C++ STL: an introduction to boostdeleter::do_it
- boost学习之checked_delete
- boost::bind 介绍
- tomcat各目录(文件)作用介绍
- C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
- 简单介绍各层作用
- WM_PAINT介绍 及 OnPaint()函数的作用原理
- Linux中个文件夹的介绍及其作用
- javascript中delete对于变量的作用
- Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置
- C++ boost 时间与日期处理详细介绍
- checked_delete 原理剖析
- Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置
- (六)Centos之目录作用介绍