Smart Pointer

C++ Core Guidelines: Smart Pointer als Funktionsparameter

Die Übergabe von Smart-Pointern an Funktionen ist ein wichtiges Thema, das selten adressiert wird. Das gilt aber nicht mehr mit den C++ Core Guidelines, denn diese bieten sechs Regeln für std::unique_ptr und std::shared_ptr an.

Hier geht es zum Artikel auf Heise Developer: https://www.heise.de/-3927673

Gelesen: 7564

C++ Core Guidelines: Regeln für Smart Pointer

Für viele C++ Entwickler sind Smart Pointer das wichtigste Feature des C++11 Standards. Genau um diese Smart Pointer geht es in dem aktuellen Artikel.

Hier geht es zum Artikel auf Heise Developer: https://www.heise.de/-3919901

Gelesen: 8649

std::weak_ptr

std::unique_ptr verkörpert das Konzept des exklusiven, std::shared_ptr des geteilten Besitzes. Bleibe ich in diesem Bild, dann verkörpert der std::weak_ptr das Konzept des zeitlich eingeschränkten Besitzes, den er leiht sich die Ressource von einem std::shared_ptr aus. Der std::weak_ptr besitzt insbesondere eine Existenzberechtigung: Zyklische Referenzen von std::shared_ptr zu brechen.

Weiterlesen...
Gelesen: 10725

Besonderheiten des std::shared_ptr

Nachdem ich im letzten Artikel das große Bild zu std::shared_ptr beschrieben habe, komme ich heute zu zwei besonderen Aspekten der Smart Pointer. Zum einen zeige ich mit std::shared_from_this, wie sich ein std::shared_ptr von einem Objekt erzeugen lässt, zum anderen beschäftigt mich die Frage: Soll ein std::shared_ptr per Copy oder per Referenz übergeben werden. Insbesondere der zweite Punkt besitzt einiges an Überraschungspotential.

Weiterlesen...
Gelesen: 12706

std::shared_ptr

std::shared_ptr teilen sich eine gemeinsame Ressource. Dabei zählt der gemeinsame Referenzzähler mit, wie viele Besitzer die Ressource hat. Wird der Smart Pointer std::shared_ptr kopiert, erhöht sich automatisch der Referenzzähler. Beim Löschen eines std::shared_prt wird sein Referenzzähler hingegen automatisch erniedrigt. Erreicht der Referenzzähler den Wert 0, wird die Ressource freigegeben.

Weiterlesen...
Gelesen: 13407

std::unique_ptr

Ein std::unique_ptr verwaltet exklusiv den Lebenszyklus seiner Ressource nach dem RAII-Idiom. Er ist die erste Wahl für einen Smart Pointer, da er seine Arbeit in der Regel ohne Speicher- oder Performanz-Overhead vollzieht.

Weiterlesen...
Gelesen: 18033

Speicher und Performanz Overhead von Smart Pointern

C++ bietet vier verschiedene Smart Pointer an. Zwei davon will ich mir in diesem Artikel unter dem Aspekt Overhead in puncto Speicher und Performanz genauer anschauen. Während mein erster Kandidat std::unique_ptr den Lebenszyklus genau einer Ressource verwaltet, teilt sich mein zweiter Kandidat std::shared_ptr typischerweise seine Ressource mit anderen std::shared_ptr. Ich nehme das Ergebnis meines Tests gerne vorweg, bevor die nackten Zahlen kommen. Es gibt wenige Gründe in modernem C++, das Speichermanagment mit new und delete explizit in die Hand zu nehmen. 

Weiterlesen...
Gelesen: 12172

Sorgfältiger Umgang mit Ressourcen

Der sorgfältige Umgang mit Ressourcen, sei es Speicher, Dateien oder Sockets, ist zentral für die Programmierung in C++. Das gilt insbesondere für die embedded Programmierung, da sich diese gerne durch eingeschränkte Ressourcen auszeichnet. Daher will ich mich diesem vielschichtigen und anspruchsvollen Thema in mehreren Artikeln widmen.

Weiterlesen...
Gelesen: 6706

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare