Wie wäre es mit dem Aufruf von shared_from_this für stack allocated objects? enable_shared_from_this in der Liste der Basisklassen ist ein Indikator für den Benutzer der abgeleiteten Klasse für die Erstellung nur auf Heap (und wir hoffen nur auf korrekte Klassenbenutzung) oder können wir einen stärkeren Schutz gegen solche Fehler haben? Oder ich verstehe einige Momente nicht?
Beispielcode: enable_shared_from_this und Objekte auf dem Stack
class C : public enable_shared_from_this<C> { public: shared_ptr<C> method() { shared_from_this(); } };
void func() { C c; shared_ptr<C> ptr = c.method(); // exception comming from shared_from_this() }
Wonach fragen Sie genau? Möchten Sie wissen, ob es eine Möglichkeit gibt, den Aufruf von 'shared_from_this()' auf Stack-allokierten Objekten zu verhindern? –