Шаблон std::unique_ptr
имеет два параметра: тип плацдарма и тип делетера. Этот второй параметр имеет значение по умолчанию, поэтому вы обычно просто пишете что-то вроде std::unique_ptr<int>
.
Шаблон std::shared_ptr
имеет только один параметр: тип получателя. Но вы также можете использовать пользовательский делетер с этим, даже если тип делетера не находится в шаблоне класса. Обычная реализация использует методы стирания типов для этого.
Есть ли причина, по которой одна и та же идея не использовалась для std::unique_ptr
?