1 std::unique_ptr< Test[] > upt(std::make_unique< Test[] >(2));
//这里没有泄漏,因为它会重置,这会取消分配。
3 upt = (std::make_unique< Test[] >(1));
在上面的代码段中,在调用第3行时,调用了两次Test的析构函数,并为大小为1的数组分配了内存。
那么,谁叫重置?是make_unique
吗?
另外,我能否获得make_unique
和make_shared
的详细实现。