Sobes.tech
Middle

Un shared_ptr a-t-il un seul compteur de références ou plusieurs?

sobes.tech IA

Réponse de l'IA

// shared_ptr utilise un compteur de références partagé,
// qui est stocké dans le bloc de contrôle.
// Ce bloc de contrôle contient également des informations sur le delete utilisateur (deleter)
// et l'allocateur utilisateur, s'ils ont été fournis lors de la création du shared_ptr.

// Chaque copie de shared_ptr pointant vers le même objet,
// fait référence à ce seul bloc de contrôle et incrémente/décrémente
// le compteur partagé lors de la copie/suppression.

// En plus du compteur de références partagé pour shared_ptr,
// le bloc de contrôle contient également un compteur de références faibles (weak count)
// pour les pointeurs faibles (weak_ptr) pointant vers le même objet.

// Ainsi, pour chaque objet géré par shared_ptr,
// il n'existe qu'un seul compteur de références fortes (pour shared_ptr) et un compteur de références faibles (pour weak_ptr),
// stockés dans un seul bloc de contrôle.