C++ unique_ptr如何知道在数组上调用delete[]?
任何人都可以提供关于C++ unique_ptr如何知道在数组上调用delete[]?,c++,C++,任何人都可以提供关于unique\u ptr如何在析构函数中选择使用delete和delete[]的见解吗?我想这里有一些有趣的类型特征技巧可以帮助理解。如果你看一下,你会看到有一个模板专门化,它有一个不同的Deleter用于数组 template< class T, class Deleter = std::default_delete<T> > class unique_ptr; template < class T, clas
unique\u ptr
如何在析构函数中选择使用delete
和delete[]
的见解吗?我想这里有一些有趣的类型特征技巧可以帮助理解。如果你看一下,你会看到有一个模板专门化,它有一个不同的Deleter
用于数组
template<
class T,
class Deleter = std::default_delete<T>
> class unique_ptr;
template <
class T,
class Deleter
> class unique_ptr<T[], Deleter>;
模板<
T类,
类Deleter=std::default\u delete
>类唯一性\u ptr;
模板<
T类,
类删除器
>类唯一性\u ptr;
正如他们所指出的
std::unique\u ptr有两个版本:
1) 管理单个对象(例如,分配了new
)2) 管理动态分配的对象数组(例如,使用
new[]
分配)
如果您有一个
unique\u ptr
,那么模板专门化就起作用了,它是T[]
的专门化,它的专门化在这里很重要。