weak_ptr, make_shared und Speicherfreigabe

Ein Steuerblock einesshared_ptr wird am Leben erhalten, solange mindestens ein @ vorhanden iweak_ptr Geschenk. Wenn der gemeinsame Zeiger mit @ erstellt wurmake_shared bedeutet, dass der gesamte Speicher des Objekts reserviert bleibt. (Das Objekt selbst ist ordnungsgemäß zerstört, aber da der Steuerblock und der Speicher für das Objekt in einem Block zugeordnet wurden, alsmake_shared tut, können sie nur gemeinsam freigegeben werden.)

Ist mein Verständnis korrekt?

Es scheint, dass dieses Verhalten ein Problem darstellt, zum Beispiel in der berühmten "cache example". Der Speicher für die Objekte wird für immer reserviert.

It es ein Problem in irgendwelchen praktischen Situationen? Soll dasshared_ptr in einer solchen Situation mit einem Konstruktor erstellt werden (großes Objekt und Verwendungsabsichtweak_ptrs)?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage