Auf der Seite cplusplus.comshared_ptr wird zwischen einer leeren std::shared_ptr und einer Null unterschieden shared_ptr . Die Seite cppreference.com ruft die Unterscheidung nicht explizit auf, sondern verwendet nullptrin ihrer Beschreibung des std::shared_ptrVerhaltens sowohl "leer" als auch Vergleich mit .
Gibt es einen Unterschied zwischen einer leeren und einer Null shared_ptr? Gibt es einen Anwendungsfall für solche Zeiger mit gemischtem Verhalten? Ist eine nicht leere Null shared_ptrüberhaupt sinnvoll? Würde es im normalen Gebrauch jemals einen Fall geben (dh wenn Sie keinen explizit konstruiert hätten), in dem Sie am Ende eine leere, aber nicht null haben könnten shared_ptr?
Und ändert sich eine dieser Antworten, wenn Sie die Boost-Version anstelle der C ++ 11-Version verwenden?
shared_ptrInstanz mit einem nicht NULL gespeicherten Zeiger." Erwähnenswert ist auch der vorstehende Hinweis (S. 15): "Um die Möglichkeit eines baumelnden Zeigers zu vermeiden, muss der Benutzer dieses Konstruktors sicherstellen, dass dieserpmindestens so lange gültig bleibt, bis die Eigentümergruppe vonrzerstört wird." Eine selten verwendete Konstruktion.