Почему unique_ptr имеет удаление в качестве параметра типа, а shared_ptr - нет?

Шаблон std :: unique_ptr имеет два параметра: тип указатель и тип удалителя. Этот второй параметр имеет значение по умолчанию, поэтому обычно вы просто пишете что-то вроде std :: unique_ptr .

Параметр std :: shared_p В шаблоне tr есть только один параметр: тип получателя. Но с этим вы также можете использовать настраиваемое средство удаления, даже если тип средства удаления не указан в шаблоне класса. В обычной реализации для этого используются методы стирания типов.

Есть ли причина, по которой та же идея не использовалась для std :: unique_ptr ?

60
задан R. Martinho Fernandes 26 October 2012 в 14:55
поделиться