unique_ptr有普通版本和数组特化的版本
template<typename T>
class MyDel
{
public:
void operator()(T *ptr) const
{
delete ptr;
}
};
//数组特化版本的删除器
template<typename T>
class MyDel<T[]>
{
public:
void operator()(T *ptr) const
{
delete[] ptr;
}
};
template<typename T, typename Deleter = MyDel<T>>
class UniquePtr
{
private:
T