Sinn von boost::weak_ptr
-
Ich habe mir grade eben mal wieder die Dokumentation der boost-librarys angeschaut.
Bei den Smart-Pointern kam aber dann die Frage auf, wofür der weak_ptr da ist.
Wäre toll, wenn jemand ein kleines Beispiel oder eine Erklärung (oder vielleicht sogar beides ;)) liefern kann.
Gruß
The-Kenny
-
In der Doku ist doch ein Beispiel?! http://www.boost.org/libs/smart_ptr/weak_ptr.htm
-
D.h. man hat einen Smart-Pointer auf ein Objekt, was ein shared_ptr hält, aber das Ownership bleibt beim shared_ptr?
Falls ja, was bringt mir das? Ich kann doch gleich den shared_ptr kopieren

Sorry wenn sich das hier doof anhört... aber ich hatte ähnliche Verständnisprobleme bei Pointern und Referenzen, bis mir ein paar Anwendungsmöglichkeiten gezeigt wurden (Referenzen in Funktionen etc.).
-
The-Kenny schrieb:
D.h. man hat einen Smart-Pointer auf ein Objekt, was ein shared_ptr hält, aber das Ownership bleibt beim shared_ptr?
Falls ja, was bringt mir das? Ich kann doch gleich den shared_ptr kopieren

Sorry wenn sich das hier doof anhört... aber ich hatte ähnliche Verständnisprobleme bei Pointern und Referenzen, bis mir ein paar Anwendungsmöglichkeiten gezeigt wurden (Referenzen in Funktionen etc.).
Lies dir die Boostdokumentation zu Smartpointern durch, dann findest du auch die Erklärung. Das gefährliche bei dem shared_ptr sind Kreisverweise, da die nicht automatisch gelöscht werden (Jeder hält den shared_ptr auf das nächste Element, und dar Letzte wieder auf das erste Element). Um diese schon etwas spezielle Problematik umgehen zu können gibt es den weak_ptr.
cu André
-
Im Forums-Magazin ist auch noch ein dt. Artikel zu den Smartpointern aus Boost! Einfach mal nachschauen.