介绍
一个unique_ptr独占它所指向的对象。某个时刻只能有一个unique_ptr指向一个给定对象。unique_ptr被销毁时,它指向的对象也会被销毁。一个unique_ptr不支持普通的拷贝或赋值:
unique_ptr<string> p1(new string{
"abc"});
unique_ptr<string> p2(p1);//错误:不支持拷贝
unique_ptr<string> p3;//错误:不支持赋值
p3 = p1;
unique_ptr被认为是C++98中的auto_ptr的替代。auto_ptr允许拷贝和赋值,但它的拷贝和赋值会留下一个悬空的指针,导致运行时错误
auto_ptr<int> p1(new int(1))