Strukturinitialisierung / Zuweisung mit geschweiften Klammern
Ich habe eine Struktur wie folgt definiert:
struct float3 {
float x;
float y;
float z;
float3 () : x(0), y(0), z(0) {}
float3 (float a, float b, float c) : x(a), y(b), z(c) {}
};
Aber ich habe Probleme, wenn es darum geht, die verschiedenen Arten der Initialisierung / Zuweisung von Werten an seine Mitglieder zu verstehen. Zum Beispiel:
//Initialization
float3 3Dvec = {1.0, 1.0, 1.0};
float3 3Dvec2 {1.0, 1.0, 1.0};
float3 3Dvec3 (1.0, 1.0, 1.0);
//Assignment
3Dvec = {2.0, 2.0, 2.0};
3Dvec = float3 (2.0, 2.0, 2.0);
Alle diese Optionen funktionieren mit -std = c ++ 11. Auf einem älteren Compiler mit -std = c ++ 0x Klammern funktioniert die Initialisierung / Zuweisung jedoch nicht. Ist der Gebrauch von Zahnspangen eine schlechte Praxis? An welche Option sollte man sich besser gewöhnen?