Différence entre std::unique_ptr et std::shared_ptr.(Quand les utiliser ?)
Salut.
J'hésite souvent entre les 2.
std::unique_ptr me donne souvent des erreurs du style use of deleted function. (Je ne l'utilise presque jamais à vrai dire)
std::shared_ptr : j'ai moins de problème avec.
Si j'ai bien compris la documentation std::unique_ptr est préférable si le pointeur n'est pas copiable, c'est bien ça ?
Donc il faut obligatoirement redéfinir un move constructor pour transférer le contenu d'un pointeur à l'autre.
Donc à priori std::unique_ptr ne serait à utiliser que pour les pointeurs non copiable.
Tandis que std::shared_ptr si j'ai bien compris, est à utiliser pour les pointeurs qui peuvent être copiés.
Donc si je comprends bien, std::unique_ptr est préférable dans le cas ou un objet ne peux être référencer que par un seul pointeur à la fois dans tout le programme.
Je ne comprend pas très bien leur intérêt. :/