Korrekte Art, das Array von boost :: scoped_ptr zu initialisieren?

8

Ich habe eine Klasse mit einem Array von Scoped-Zeigern auf Objekte, die keinen Standardkonstruktor haben.

Der einzige Weg, den ich gefunden habe, um sie zu "initialisieren", ist swap() wie folgt zu verwenden:

%Vor%

Das fühlt sich ein wenig ausschweifend und klobig an. Habe ich einen klügeren Weg vermisst?

    
Roddy 15.07.2010, 16:25
quelle

4 Antworten

15
%Vor%     
BlueRaja - Danny Pflughoeft 15.07.2010, 16:35
quelle
5

Das größte Problem besteht darin, dass es keine Möglichkeit gibt, ein Array mit der Liste der Memberinitialisierer hier zu initialisieren. Vielleicht möchten Sie stattdessen einen speziellen Pointer-Container wie ptr_vector verwenden :

%Vor%     
Georg Fritzsche 15.07.2010 16:32
quelle
1

Wie wäre es mit einem typedef?

%Vor%     
Lars 15.07.2010 16:30
quelle
1

Eine Lösung: Verwenden Sie boost :: ptr_vector anstelle von Array.

Sie könnten auch std::vector<scoped_ptr> verwenden und das Array mit push_back füllen. Bearbeiten: Ich denke, das funktioniert nicht mit scoped_ptr.

    
Mark Ransom 15.07.2010 16:32
quelle

Tags und Links