unique_ptr::reset
取得指针参数的所有权,然后删除原始存储的指针。 如果新指针与原始存储指针相同,reset将删除指针并将存储的指针设置为nullptr。
void reset(pointer ptr = pointer());
void reset(nullptr_t ptr);
参数
参数 |
描述 |
---|---|
ptr |
指向要取得所有权的资源的指针。 |
备注
使用reset把unique_ptr拥有的存储指针更改为ptr,然后删除原始存储的指针。 如果unique_ptr不为空,reset将调用原始存储指针上的 get_deleter 返回的删除器函数。
因为reset 首先将存储新指针 ptr,然后删除原始存储的指针,如果与原始存储指针相同,则reset 可以立即删除ptr。
要求
标头:<memory>
命名空间: std