unique_ptr

来源:互联网 发布:网络牛牛赌博 编辑:程序博客网 时间:2024/06/05 11:08

unique_ptr

  • unique_ptr(定义在中)提供了一种严格的语义上的所有权
    o 拥有它所指向的对象
    o 无法进行复制构造,也无法进行复制赋值操作(译注:也就是对其无法进行复制,我们无法得到指向同一个对象的两个unique_ptr),但是可以进行移动构造和移动赋值操作
    o 保存指向某个对象的指针,当它本身被删除释放的时候(例如,离开某个作用域),会使用给定的删除器(deleter)删除释放它指向的对象。
  • unique_ptr的使用能够包括:
    o 为动态申请的内存提供异常安全
    o 将动态申请内存的所有权传递给某个函数
    o 从某个函数返回动态申请内存的所有权
    o 在容器中保存指针
  • “所有auto_ptr应该已经具有的(但是我们无法在C++98中实现的)功能”

unique_ptr十分依赖于右值引用和移动语义。