Zitat Zitat von Kyuu Beitrag anzeigen
Ja, den Grund, dass du sie noch nicht in C++ (bewusst) erlebt hast.

Weak references sind sehr wichtig und überall dort wo reference cycles auftreten können, unverzichtbar. Im Prinzip stellen Indizes in deinen ersten Vektor auch (naive) weak references dar.
Ich habe nochmal nachgeschlagen und der Grund warum bei uns weak pointer noch nicht zum Einsatz kamen ist der, dass sie auf shared_ptr basieren, die wiederum einen overhead gegenüber normalen pointern verursachen, da der object counter dynamisch zusätzlich zum objekt allokiert wird. Wir verwenden hauptsächlich intrusive_ptr und da funktionieren die weak_ptr aus boost und std nicht, wenn ich das richtig verstehe.

Man braucht nicht weak pointer um reference cycles aufzuheben. Raw pointer und etwas vorsicht tun es auch. Ich schätze mal shared und weak ptr sind die sichere Methode, wenn man den Overhead in Kauf nehmen kann.