Скажем, я хочу использовать пользовательский Deleter с unique_ptr:Почему unique_ptr не может вывести тип делетера?
void custom_deleter(int* obj)
{
delete obj;
}
Почему я должен написать это:
std::unique_ptr<int, void(*)(int*)> x(new int, custom_deleter);
вместо этого:
std::unique_ptr<int> x(new int, custom_deleter); //does not compile
?
Нельзя ли определить тип делетера?
Связанные: http://stackoverflow.com/questions/21355037/why-does-unique-ptr-take-two-template-parameters-when-shared-ptr-only-takes-one – 0x499602D2
Шаблонные классы не вывести параметры шаблона. Только функции шаблона. –
Интересно, почему 'std :: make_unique' не имеет перегрузки, в которой вы можете указать дебетер. Таким образом, вы можете определить тип делетира. – vsoftco