unique_ptr如何知道在数组上调用delete []?

时间:2017-07-23 21:08:00

标签: c++

任何人都可以了解unique_ptr在析构函数中使用deletedelete[]之间的选择方式吗?我假设那里有一些有趣的类型特征技巧,这对于理解是有用的。

1 个答案:

答案 0 :(得分:0)

如果您查看documentation,您会看到有一个模板专精,其数组的Deleter不同

template<
    class T,
    class Deleter = std::default_delete<T>
> class unique_ptr;

template <
    class T,
    class Deleter
> class unique_ptr<T[], Deleter>;

他们注意到

  

std :: unique_ptr有两个版本:

     

1)管理单个对象(例如,分配有new
  2)管理动态分配的对象数组(例如,分配有new[]