Da muss ich HaWe jetzt aber beispringen, zu diesen C++ Zeiten war ich an der Uni.
Ja, die Initialisierung von Array in der Form
gibt es schon seit Anfang an in C++, weil es sie schon seit dieser Zeit in C gab.Code:int feld[] = { 1, 2, 3 };
Und ja, es war damals, also auch in den ersten ISO Normen, die einzige Möglichkeit ein C Array direkt bei der Definition zu initialisieren. Und zwar nur C Array keine Vektoren oder so.
Und ja, es war schon damals guter Stil, die Größe des Feldes nicht extra in die eckigen Klammern zu schreiben.
Daraus, und das vermischt HaWe etwas, wurde die "Uniform Initialisation" in C++11, neuer Stil wäre also eher
Hier wird auch bei n nicht mal der Typ angegeben, das nennt sich AAA-Stil (almost always auto), wird von einigen Experten empfohlen (Scott Meyers, Herb Sutter, ...), ist aber nicht unumstritten.Code:array<int> feld = { 1, 2, 3 } auto n = feld.size();
Man kann heute übrigens, in aktuellem C++, in der Arduino IDE nur bei den Teensy Boards, alles mit geschweiften Klammern initialisieren
Warum das in der ISO Norm u.a. geändert wurde, kann man hier lesenCode:int a = 1; int b{2};
https://en.wikipedia.org/wiki/Most_vexing_parse
Lesezeichen