虽然存在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
.