boost::shared_array (deprecated) due to now(C++17) shared_ptr takes array type.
cppref:
std::shared_ptr::operator[]
Prior C++17, we need to provide ourselves a array deleter in order to allow shared_ptr taking array type.
s.t like:
cppref:
std::shared_ptr::operator[]
Prior C++17, we need to provide ourselves a array deleter in order to allow shared_ptr taking array type.
s.t like:
template< typename T >
struct array_deleter
{
void operator ()( T const * p)
{
delete[] p;
}
};
std::shared_ptr<int> sp(new int[10], array_deleter<int>());
// or
std::shared_ptr<int> sp(new int[10], std::default_delete<int>());
//or
std::shared_ptr<int> sp(new int[10], [](int *p) { delete[] p; });
Reference:https://stackoverflow.com/a/13062069
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.