Mam strukturę z wieloma członkami tego samego typu, jak ten
struct VariablePointers {
VariablePtr active;
VariablePtr wasactive;
VariablePtr filename;
};
Problem polega na tym, że jeśli zapomnę zainicjować jednego z elementów struktury (np. wasactive
), To tak:
VariablePointers{activePtr, filename}
Kompilator nie będzie na to narzekał, ale będę miał częściowo zainicjowany obiekt. Jak mogę zapobiec tego rodzaju błędom? Mógłbym dodać konstruktor, ale skopiowałby listę zmiennych dwukrotnie, więc muszę trzykrotnie wpisać to wszystko!
Dodaj również odpowiedzi C ++ 11 , jeśli istnieje rozwiązanie dla C ++ 11 (obecnie jestem ograniczony do tej wersji). Mile widziane są jednak nowsze standardy językowe!
-Wmissing-field-initializers
flaga kompilacji.