À la fois unique et shared_ptr accepter une coutume destructeur d'appel sur l'objet qu'ils possèdent. Mais dans le cas d' unique_ptr
, le destructeur est passé comme un paramètre du modèle de la classe, wherease le type d' shared_ptr
's personnalisé destructeur doit être spécifié comme un paramètre du modèle du constructeur.
template <class T, class D = default_delete<T>>
class unique_ptr
{
unique_ptr(T*, D&); //simplified
...
};
et
template<class T>
class shared_ptr
{
template<typename D>
shared_ptr(T*, D); //simplified
...
};
Je ne vois pas pourquoi une telle différence. Ce qui implique que?