std::unique_ptr<int[]> p(new int[10]); //ok
std::shared_ptr<int[]> p(new int[10]); //Error
shared_ptr<int> sp( new int[10],[](int *p){delete [] p;});
//Ok, writing custom deleter for
//array since shared_ptr will call
//delete by default.
与 unique_ptr 相比,数组的 shared_ptr 签名是否有任何特定原因?
如果两个 api 都遵循类似的签名,那就更简单了。