Ich bin ein wenig verwirrt über Boos Intrusivzeiger. Die Definition sagt:Boost intrusive Zeiger
.„Jede neue
intrusive_ptr
Instanz den Referenzzähler durch einen uneingeschränkten Aufruf der Funktion erhöht mitintrusive_ptr_add_ref
, es den Zeiger als Argument übergeben Ähnlich, wenn einintrusive_ptr
zerstört wird, ruft er.intrusive_ptr_release
;. diese Funktion ist verantwortlich für die Zerstörung des Objekts, wenn seine Referenz Zähler auf Null abfällt der Benutzer wird erwartet, geeignete Definitionen dieser beiden Funktionen bereitzustellen "
Bedeutet das, dass ich diese Methoden implementieren muss, oder dass ich es kann? Der Punkt ist, dass wir es verwenden, da eine Funktion einen störenden Zeiger benötigt. Wir haben den geteilten Zeiger an den anderen Stellen verwendet, also haben wir uns nur Sorgen gemacht, ob der Zeiger verwaltet wird, und er wird gelöscht, wenn keine Referenzen mehr darauf vorhanden sind.
Vielen Dank für die detaillierte Erklärung. Obwohl wir keine Kompilierungsfehler erhalten, wenn wir ein intrusives_ptr für ein Boost-Statechart-Ereignis erstellen. Bedeutet dies, dass die Implementierung dieser Methoden innerhalb des Boost-Statechart-Ereignisses liegt? –
@BenjaminLarsen Könnte sein, ich weiß nichts über Boost Statecharts. – Angew
Wir haben die Implementierung gefunden, sie wurde innerhalb des Events implementiert. Danke noch einmal! –