Bonjour,

j'ai récemment choisi de modifier le code d'un de mes projets en remplaçant un pointeur sur une donnée qui tient une place importante dedans, par un pointeur intelligent, à force d'entendre que les pointeurs bruts sont à éviter tant que possible, au profit des smarts pointer, pour plus de sécurité (à défaut de l'avoir entendu, j'en ai l'impression).

Plus concrètement :
  • j'ai plusieurs objets (disons 5) dans un vector
  • un pointeur qui pointe tour à tour sur ces 5 objets


Du coup :
  • shared_ptr : inadapté (qu'un seul pointeur pour plusieurs objets)
  • unique_ptr : inadapté (sauf si on peut éviter qu'il ne détruise mes objets à chaque (ré)affectation)
  • weak_ptr : je ne vois pas trop sa particularité mais je le penses inadapté
  • * : au final ça me parait être le plus adapté, mais on entends souvent parler du manque de sureté de sa manipulation alors bon...


qu'en pensez-vous ?

Merci.