【发布时间】:2026-02-23 01:05:01
【问题描述】:
我检查了 VC++ 2013 和 clang 3.4,发现两者都实现了std::unique_ptr,如下:
template<class T, class DeleterType = std::default_delete<T>>
class unique_ptr
{
// ...
};
template<class T, class DeleterType>
class unique_ptr<T[], DeleterType>
{
// ...
};
std::default_delete 能够判断 T 是否为数组类型。所以std::unique_ptr 不需要专门处理数组大小写。而且,我找不到class unique_ptr 和专门的class unique_ptr<T[], DeleterType> 之间的任何实质性区别,这是为什么呢?
【问题讨论】:
标签: c++ visual-c++ c++11 clang template-specialization