Boost之smart_ptr
2018-02-09 15:27
183 查看
如果对象是用声明的方式在栈上创建的( 一个局部对象),那么RAII机制会工作正常,当离开作用域时对象会自动销毁从而调用析构函数释放资源。但如果对象是用new操作符在堆上创建的,那么它的析构函数不会自动调用,程序员必须明确地用对应的 delete 操作符销毁它才能释放资源,这非常容易造成内存泄漏的问题,所以Boost提供了6种智能指针用于解决这种问题,包括scoped_ptr、scoped_array、shared_ptr 、 shared_array 、weak_ptr和 intrusive_ptr 。它们是轻量级的对象,速度与原始指针相差无几,都是异常安全的 (exception safe) ,而且对于所指向的类型T也仅有一个很小且很合理的要求:类型T的析构函数不能抛出异常。
相关文章推荐
- 初探boost之smart_ptr库学习笔记
- boost.smart_ptr-智能指针scoped_array
- Boost::smart_Ptr makes up for AutoPtr
- boost::smart_ptr学习笔记
- boost.smart_ptr-智能指针scoped_ptr
- boost smart_ptr -> scoped_ptr
- boost.smart_ptr-智能指针scoped_ptr
- boost.smart_ptr-智能指针scoped_ptr
- boost smart_prt 4-> shared_ptr
- 初探boost之smart_ptr库学习笔记
- 引领Boost(四)(Boost::smart_ptr)
- boost::smart_ptr
- 引领Boost(四)(Boost::smart_ptr)
- Boost.smart_ptr.scoped_ptr--1
- 在smart_ptr中处理引用计数时使用swap概念(boost::shared_ptr.hpp)
- Boost.smart_ptr.shared_ptr--2
- boost.smart_ptr库简介
- Boost源码剖析--<boost/smart_ptr/scoped_ptr.hpp>
- boost.smart_ptr-智能指针scoped_ptr
- Boost使用笔记(Smart_ptr)