虽然存在boost::shared_ptr( QSharedPointer) 的等价物,但我无法找到类似的东西boost::shared_array。
当然我可以使用类似的东西
QSharedPointer<const std::vector<T> > shared_vector_ptr(new std::vector<T>(
reinterpret_cast<T*>(pBuffer),
reinterpret_cast<T*>(pBuffer+length)
));
但我想知道是否存在提供和T& operator[](size_t)使用delete[]而不是delete. 我不愿意在这个项目中使用 boost,因为目标机器无法安装 boost,并且项目是按源分发的。
注意:我知道我可以使用 指定删除器QSharedPointer::QSharedPointer ( T * ptr, Deleter deleter ),但是我不喜欢这种方法,因为编译器不会强制您指定删除器,这会导致new []分配的块被delete.