我使用std::unique_ptr
带有自定义删除器的 a 作为 a 的值,std::map
如下所示:
#include <iostream>
#include <memory>
#include <map>
void deleter(int* p){
std::cout<<"Deleting..."<<std::endl;
delete p;
}
int main()
{
std::map<char, std::unique_ptr<int, void(*)(int*)>> a;
std::unique_ptr<int, void(*)(int*)> p{new int{3}, deleter};
a['k'] = std::move(p);
}
插入值时,我使用std::move
,但它不会编译。
我究竟做错了什么?
您会看到以下链接的错误。