1、std::auto_ptr:来自标准库
2、smart_ptr:来自Boost,在Boost中的智能指针有:
a. scoped_ptr,用于处理单个对象的唯一所有权;与std::auto_ptr不同的是,scoped_ptr可以被复制。
b. scoped_array,与scoped_ptr类似,但是用来处理数组的
c. shared_ptr,允许共享对象所有权
d. shared_array,允许共享数组所有权
auto_ptr:http://blog.youkuaiyun.com/yipingfangmi/article/details/5452052
需要注意的点:不支持数组(析构函数是delete不是delete[])、不适合stl容器、不能用于管理栈上的对象、所有权的转移。
// 不能用于管理栈上的对象,以下用法是错误的
int a;
std::auto_prt<int> myPrt(&a);
share_ptr:http://blog.youkuaiyun.com/yusiguyuan/article/details/37101633