ich mit einer Code-Basis arbeiten, die teilweise von jemandem, der in der Liebe war mit übermäßig komplexen Lösungen für einfache Probleme (zum Beispiel Template-Klassen mit zwei Parametern, die immer nur für ein paar Typen instanziiert wurden) umgesetzt wurden. Eine Sache, die sie tat, war, Objekte in einem intelligenten Zeiger zu verursachen und das Objekt dann einen schwachen Zeiger zu sich selbst zu lassen.Shop schwache Zeiger auf Selbst
Die Klasse fährt fort, m_self zu verwenden, indem sie es sperrt und um den resultierenden gemeinsamen Zeiger herumgibt.
Für das Leben von mir, kann ich nicht ergründen, was sie zu erreichen versuchen. Gibt es ein Muster oder eine Idee, die diese Implementierung erklären? Es sieht für mich so aus, als wäre das völlig sinnlos und ich würde es gerne umgestalten.
BEARBEITEN: Ich sollte erwähnen, dass keiner der Orte, die den resultierenden Smart-Zeiger aus dem Sperren von m_self verwendet tatsächlich den Smart-Zeiger beibehalten.
wussten nicht, über 'std :: shared_from_this' I –
erraten C++ 98 Es ist neuere Sachen nicht verwendet –
Na ok, es ist eine C++ 98-Version von' enable_shared_from_this' –