Ich habe eine Struktur mit vielen Mitgliedern des gleichen Typs, wie diese
struct VariablePointers {
VariablePtr active;
VariablePtr wasactive;
VariablePtr filename;
};
Das Problem ist, dass, wenn ich vergesse, eines der Strukturelemente (z. B. wasactive
) wie folgt zu initialisieren :
VariablePointers{activePtr, filename}
Der Compiler wird sich nicht darüber beschweren, aber ich werde ein Objekt haben, das teilweise initialisiert ist. Wie kann ich diese Art von Fehler verhindern? Ich könnte einen Konstruktor hinzufügen, aber er würde die Liste der Variablen zweimal duplizieren, also muss ich das alles dreimal eingeben!
Bitte fügen Sie auch C ++ 11- Antworten hinzu, wenn es eine Lösung für C ++ 11 gibt (derzeit bin ich auf diese Version beschränkt). Neuere Sprachstandards sind jedoch ebenfalls willkommen!
-Wmissing-field-initializers
Kompilierungsflag.