Macht std::unique_ptr
die Boost.Pointer-Container-Bibliothek in C++11/14 überflüssig?
In C++98/03 gibt es keine Umzugssemantik, und ein intelligenter Zeiger wie shared_ptr
hat bezogene Overhead-Kosten (sowohl für den Referenz-Block als auch für die interlocked-Inkrementierung/Dekrementierung), im Vergleich zu rohen Zeigern. Also hat etwas wie std::vector>
Overhead im Vergleich zu std::vector
.
Aber ist std::vector>
genauso effizient wie std::vector
(kein Overhead durch Referenz-Zählung), und zusätzlich sicher im Hinblick auf Ausnahmen und automatische Zerstörung (d.h. der Destruktor von vector>
ruft automatisch die Destruktoren für die T
-Elemente auf, deren Zeiger im vector
gespeichert sind)?
Falls ja, hat Boost.Pointer Container immer noch einen gültigen und nützlichen Platz im C++11/14-Code, oder ist er einfach überholt?