Avatar von Der_Irre_Polterer
  • Der_Irre_Polterer

mehr als 1000 Beiträge seit 23.02.2004

Der Grund für die feste Reihenfolge...

.. der Initialisatoren-Namen leuchtet mir nicht recht ein.

Die Zeile

struct A a = {.y = 1, .x = 2}; // valid C, invalid C++ (out of order)

ist doch quasi der einzige Grund die Member-Namen mit zu schreiben und nicht einfach

struct A a {1, 2, 3};

zu nutzen. Das ist kurz, klar und lange bekannt.

Die Begründung "In C++, members are destroyed in reverse construction order and the elements of an initializer list are evaluated in lexical order, so field initializers must be specified in order. " lese ich als
"Wir waren zu faul das in den Compilern zu implementieren".
Oder gäbe das unumgehbare Probleme die ich jetzt nicht sehe?

Das Posting wurde vom Benutzer editiert (06.07.2020 13:16).

Bewerten
- +