Do smart pointers work with arrays allocated using new T[]?
It will call delete[] and hence the entire array will be reclaimed but I believe you need to indicate that you are using an array form of unique_ptrby: std::unique_ptr<int[]> my_array(new int[5]); This is called as Partial Specialization of the unique_ptr.