Come posso vedere, i puntatori intelligenti sono ampiamente utilizzati in molti progetti C ++ reali.
Anche se alcuni tipi di puntatori intelligenti sono ovviamente utili per supportare RAII e trasferimenti di proprietà, c'è anche una tendenza ad usare i puntatori condivisi di default , come modo di "garbage collection" , in modo che il programmatore non debba pensare molto all'assegnazione.
Perché i puntatori condivisi sono più popolari dell'integrazione di un vero garbage collector come Boehm GC ? (O siete d'accordo sul fatto che sono più popolari dei GC attuali?)
Conosco due vantaggi dei GC convenzionali rispetto al conteggio dei riferimenti:
- Gli algoritmi GC convenzionali non presentano alcun problema con cicli di riferimento .
- Il conteggio dei riferimenti è generalmente più lento di un GC corretto.
Quali sono i motivi dell'utilizzo dei puntatori intelligenti con conteggio di riferimento?