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.