Ich habe einen Fall, wo ich eine Liste von Ressourcen in einem Std :: Vector speichern möchte. Wie ich es sehe, sind meine Optionen wie folgt:RAII und C++ STL
- Konstruktor ein Standard Geben Sie meine Ressource
- speichern sie als Heap-Objekte (und sie in einem gemeinsamen Zeiger wickeln)
Option 1 macht es möglich, ungültige Ressourcen zu konstruieren und Option 2 zwingt mich, den Heap zu verwenden.
Fehle ich hier irgendwelche Optionen?
Warum möchten Sie die Ressourcen standardmäßig ctor geben? Vektor erfordert nur Kopie ctor. – Naveen
"Option 2 zwingt mich, den Heap zu verwenden" - nun, der Vektor wird auch seine Sachen auf dem Heap speichern (es sei denn, Sie verwenden einen benutzerdefinierten Zuordner), obwohl im zusammenhängenden Speicher. Sie können also den Heap nicht auf die eine oder andere Weise umgehen. –
festgestellt, dass ich eine Referenz in meiner Ressource gespeichert wurde, so das Problem war nicht der Standardkonstruktor thx – dirk