提问人: 提问时间:6/20/2023 更新时间:6/20/2023 访问量:71
如何确定 C++ 内存是否分配了标量 new 或数组 new
How to find out if C++ memory was allocated with scalar new or array new
问:
我正在努力优化我的 C++ 库中的智能指针。除了内置指针和引用计数之外,指针还有一个布尔值,说明指针是标量还是数组(即,它是用 new 或 new[] 运算符分配的)。然后,该类的析构函数使用此布尔值来确定要执行哪种类型的释放(分别为 delete 或 delete[]。
手动指定这个布尔值似乎有点奇怪,所以我想知道,是否有办法隐式地做到这一点。
Github 上的完整代码。
答: 暂无答案
评论
smart_pointer<T>
smart_pointer<T[]>
std::unique_ptr
my_smart_ptr<T[]>
T[]
Pointer
std::unique_ptr