(My_unique_ptr const&) const; void operator!=(My_unique_ptr const&) const; public: typedef T element_type; explicit My_unique_ptr(T * p = 0) : px(p) // never throws { } ~My_unique_ptr() // never throws { //boost::checked_delete(px); delete px; } void reset(T * p =...
Boost内存管理总结(scoped_ptr、unique_ptr、shared_ptr、weak_ptr、intrusive_ptr、pool、object_pool、singleton_pool),程序员大本营,技术文章内容聚合第一站。
包括:std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost::intrusive_ptr Boost库的智能指针(ps:新的C++11标准中已经引入了unique_ptr/shared_ptr/weak_ptr): auto_ptr 独占所有权,转移所有权 第一种实现:最开始auto_ptr的成员变量主...
1. unique_ptr: unique_ptr由C++11引入,旨在替代不安全的auto_ptr。 unique_ptr不共享它的所管理的对象。它无法复制到其他unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库(STL)算法。只能移动 unique_ptr,即对资源管理权限可以实现转移。 //智能指针的创建 unique_ptr<int> u_i; //创建...
注意:现在boot库已经归入STL库,用法基本上还和boost类似 在C++11中,引入了智能指针。主要有:unique_ptr, shared_ptr, weak_ptr。这3种指针组件就是采用了boost里的智能指针方案。很多有用过boost智能指针的朋友,很容易地就能发现它们之间的关间: std boost
Boost程序库完全开发指南:深入C++”准”标准库(第5版)3.2 scoped_ptr3.2scoped_ptrscoped_ptr是一个与auto_ptr/unique_ptr很类似的智能指针,它包装了new操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确地删
Boost库的智能指针(ps:新的C++11标准中已经引入了unique_ptr/shared_ptr/weak_ptr): auto_ptr 独占所有权,转移所有权 第一种实现:最开始auto_ptr的成员变量主要有T* _ptr 和 bool _owner,主要实现原理是在构造对象时赋予其管理空间的所有权,在拷贝或赋值中转移空间的所有权,在析构函数中当_owner为true(拥有...
对应C++11中的unique_ptr scoped_ptr的所有权更加严格,不允许转让,对其赋值和拷贝都是不合法行为,因而显得更轻巧和快捷。 scoped_ptr重载了operator*()和operator->()解引用操作符*和箭头操作符->,因此可以把scoped_ptr对象如同
智能指针scoped_ptr,对应C++11中的unique_ptrscoped_ptr的所有权更加严格,不允许转让,对其赋值和拷贝都是不合法行为,因而显得更轻巧和快捷。scoped_ptr重载了operator*()和operator->()解引用操作符*和箭头操作符->,因此可以把scoped_ptr对象如同指针一样使用
scoped_ptr 不能被复制或者赋值。 weak_ptr跟shared_ptr配合使用,对weak_ptr实例调用 lock()的时候,增加其引用计数。 shared_ptr里面一个指针,一个引用计数用到的类(其实是引用,分配在堆上)。 这一篇讲的很透彻: http://www.2cto.com/kf/201301/186671.html ...