Ich habe eine Klasse mit einem Array von Bereichen Zeiger auf Objekte, die keinen Standardkonstruktor haben.Korrekter Weg, um ein Array von boost :: scoped_ptr zu initialisieren?
Der einzige Weg, die ich gefunden habe, um „initialisieren“ wird sie swap()
wie folgt aus:
class Bar {
Bar(char * message) {};
}
class Foo
{
boost::scoped_ptr<Bar> arr[2];
Foo()
{
arr[0].swap(boost::scoped_ptr<Bar>(new Bar("ABC")));
arr[1].swap(boost::scoped_ptr<Bar>(new Bar("DEF")));
};
}
Das fühlt sich ein wenig ausführlich und klobig. Habe ich einen klügeren Weg verpasst?
Wie erwartet, hatte ich den offensichtlichen Weg verpasst. Vielen Dank! – Roddy
Danke! Ich kann nicht glauben, dass ich das übersehen habe. – Vortico