该标准提供了模板专用化,std::unique_ptr可以delete[]从其析构函数正确调用:
void func()
{
std::unique_ptr< int[] > arr(new int[10]);
.......
}
有了std::shared_ptr这种专业化是不可用的,所以有必要提供有删除其正确调用delete[]:
void func()
{
// Usage
shared_ptr array (new double [256], [](double* arr) { delete [] arr; } );
..............
}
这仅仅是疏忽吗?(以存在的相同方式std::copy_if)还是有原因?
天涯尽头无女友
摇曳的蔷薇
相关分类