Ich habe eine Klasse Thing
Sport kein Standardkonstruktor.C++ Mitglied Array Initalisierung ohne Standardkonstruktoren
Jetzt definieren wir eine andere Klasse, die nun die Array-Elemente auf einmal initialisieren muss, da ohne einen Standardkonstruktor keine späte Zuweisung vorgenommen werden kann. So haben wir:
class TwoThings
{
public:
Thing things[2];
TwoThings() : things({Thing("thing 1"),Thing("thing 2")})
{
}
}
Ist das der richtige Weg?
GCC kompiliert es gut, während Clang nicht, unter Angabe einer "Initialisierungsliste" sollte verwendet werden. Ich versuchte mehrere alternative Möglichkeiten wie doppelte Klammern {{ ... }}
und so, aber nicht schaffen, eine Compiling-Entsprechung für Clang zu bekommen.
Wie initialisiert man Arrays ohne Standardkonstruktor in Clang?
Also gibt es keinen Weg ohne diese Erweiterung oder C++ 11 (bricht viele meiner älteren Bibliotheken) ein Array zu initialisieren? – dronus
Sie könnten eine andere Speichermethode verwenden, wie 'std :: pair' oder 'std :: vector '. –
TartanLlama
Ich nehme an, dass 'std :: vector' Elemente mit dem Standardkonstruktor benötigen würde? – dronus