Я использую std::unique_ptr
с пользовательским удалителем в качестве значения 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
, но оно не скомпилируется.
Что я делаю не так?
По следующей ссылке вы видите ошибки.
https://wandbox.org/permlink/fKL4QDkUTDsj4gDc