Middle
O shared_ptr tem apenas um contador de referências ou vários?
sobes.tech IA
Resposta da IA
// shared_ptr usa um contador de referências compartilhado,
// que é armazenado no bloco de controlo.
// Este bloco de controlo também contém informações sobre o delete do utilizador (deleter)
// e o allocator do utilizador, se foram fornecidos na criação do shared_ptr.
// Cada cópia de shared_ptr que aponta para o mesmo objeto,
// refere-se a este único bloco de controlo e incrementa/decrementa
// o contador comum ao copiar/remover.
// Além do contador de referências comum para shared_ptr,
// o bloco de controlo também contém um contador de referências fracas (weak count)
// para os ponteiros fracos (weak_ptr) que apontam para o mesmo objeto.
// Assim, para cada objeto gerido por shared_ptr,
// existe apenas um contador de referências fortes (para shared_ptr) e um contador de referências fracas (para weak_ptr),
// armazenados num único bloco de controlo.