Dav*_*vid 16 c++ smart-pointers c++11
是否有一个原因unique_ptr::reset
没有重载采用a const deleter&
和deleter&&
匹配其构造函数,将其作为第二个参数?
存储的删除器unique_ptr
将被复制分配或移动分配参数来自reset
.如果删除器是不可复制的或不可移动的,则调用相应的重载reset
将无法编译.这似乎与构造函数的一致行为.
How*_*ant 26
我想添加它,但你可以使用移动赋值运算符获得等效的功能:
ptr = unique_ptr<T, D>(new T(another_value), D(another_state));
Run Code Online (Sandbox Code Playgroud)
因此reset
,为了保持API合理地小,我选择不说同样的事情.
更新
我生活和学习......
语法实际上可以比我上面显示的简单得多:
ptr = {new T(another_value), D(another_state)};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2807 次 |
最近记录: |