Designated Initializers
-
wieso wurde das in c++0x nicht aufgenommen? gibt es dafür einen rationalen grund oder mehr so einen "weil ich es nicht brauche und der chef"-grund?
-
Es war afaik gar nie zur Debatte. Aber hier gibts einen interessanten Post von Douglas Gregor:
http://groups.google.com/group/comp.std.c++/browse_thread/thread/8b7331b0879045adEr meint da auch, dass das gar nie diskutiert wurde und es ja bereits zu spät ist für neue Proposals.
Das gezeigte Beispiel vom Fragesteller würde ich wahrscheinilch mit einem Konstruktor implementieren.
In C++0x ist das ja nicht einmal mehr ein Problem wegen, dass es kein POD mehr wäre, weil das ganze ja ein wenig gelockert wurde.
http://en.wikipedia.org/wiki/C%2B%2B0x#Modification_to_the_definition_of_plain_old_dataBis zu einem gewissen Grade kann man das ja auch mit initializer lists nachahmen.
Oder gibt es spezielle Fälle, wo du dir das unbedingt wünscht?
-
ja, für const static variablen. für structs, die sehr groß sind oder öfters erweitert werden, macht das sinn. außerdem wird es übersichtlicher.