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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage