gpt4 book ai didi

c++ - 为什么 unique_ptr::reset 没有带删除器的重载?

转载 作者:IT老高 更新时间:2023-10-28 22:18:14 30 4
gpt4 key购买 nike

unique_ptr::reset 没有使用 const deleter&deleter&& 来匹配其构造函数的重载是否有原因?那些作为第二个论点?

unique_ptr 中存储的删除器将使用来自reset 的参数进行复制分配或移动分配。如果删除器不可复制或不可移动,则调用 reset 的相应重载将无法编译。这似乎与构造函数的行为一致。

最佳答案

我考虑过添加它,但您可以使用移动赋值运算符获得等效功能:

ptr = unique_ptr<T, D>(new T(another_value), D(another_state));

所以我选择不使用 reset 说同样的话,以保持 API 相当小。

更新

我生活和学习......

语法实际上比我上面显示的要简单得多:

ptr = {new T(another_value), D(another_state)};

关于c++ - 为什么 unique_ptr::reset 没有带删除器的重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167205/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com