Middle
Má má sdílený ukazatel má pouze jeden čítač odkazů nebo více?
sobes.tech AI
Odpověď od AI
// shared_ptr používá sdílený čítač odkazů,
// který je uložen v řídicím bloku.
// Tento řídicí blok také obsahuje informace o delete uživatele (deleter)
// a alokátoru uživatele, pokud byly při vytváření shared_ptr poskytnuty.
// Každá kopie shared_ptr, která odkazuje na stejný objekt,
// odkazuje na tento jediný řídicí blok a zvyšuje/snižuje
// sdílený čítač při kopírování/mazání.
// Kromě sdíleného čítače odkazů pro shared_ptr,
// řídicí blok také obsahuje čítač slabých odkazů (weak count)
// pro slabé ukazatele (weak_ptr), které odkazují na stejný objekt.
// Takže pro každý objekt spravovaný shared_ptr,
// existuje pouze jeden silný čítač odkazů (pro shared_ptr) a jeden slabý čítač odkazů (pro weak_ptr),
// uložené v jednom řídicím bloku.