Sobes.tech
Middle

¿Un shared_ptr tiene solo un contador de referencias o varios?

sobes.tech AI

Respuesta de la IA

// shared_ptr utiliza un contador de referencias compartido,
// que se almacena en el bloque de control.
// Este bloque de control también contiene información sobre el delete del usuario (deleter)
// y el allocator del usuario, si se proporcionaron al crear shared_ptr.

// Cada copia de shared_ptr que apunta al mismo objeto,
// hace referencia a este único bloque de control y aumenta/disminuye
// el contador compartido al copiar/eliminar.

// Además del contador de referencias compartido para shared_ptr,
// el bloque de control también contiene un contador de referencias débiles (weak count)
// para los punteros débiles (weak_ptr) que apuntan al mismo objeto.

// Por lo tanto, para cada objeto gestionado por shared_ptr,
// existe solo un contador de referencias fuertes (para shared_ptr) y un contador de referencias débiles (para weak_ptr),
// almacenados en un solo bloque de control.