一种智能指针,其功能大致如下:
class maybe_owns_ptr {
public:
maybe_owns_ptr(void* ptr, bool owns)
: ptr(ptr)
, owns(owns)
{}
~maybe_owns_ptr()
{
if (owns) delete ptr;
}
private:
void* ptr;
bool owns;
};
(该类应该被模板化以包含指针的类型,删除函数,以及其他构造函数和赋值函数等,但为了简洁我省略了它)
{{1>是否存在一个类,它可以存储它拥有(并将解构)的指针和它不拥有(因此不会解构)的指针或具有类似功能的指针}}?我可以使用其他std
组件实现此功能,而无需自己创建新类吗?