enum Syntax - Ist Komma am Ende standardkonform?
-
Ist es eigentlich dem C++ Standard entsprechend, wenn ich Code in dieser Art schreiben:
enum Artikel { DER, DIE, DAS, };
Laut MSDN sollte man das letzte Komma weglassen. Der Compiler meckert aber trotzdem nicht, wenn man eines macht. Ist also beides erlaubt, oder ist es eine "Nachlässigkeit" des MS-Compilers?
Bye, TGGC \-/
-
Bei Array-Initialisierern ist es erlaubt, also wahrscheinlich auch bei enum.
-
das könnte aber zu namenskonflikten mit den geplanten Whitespace-operator führen http://www.c-plusplus.net/whitespace98.pdf
-
Gerard: Nein, das verträgt sich mit dem Whitespace-Operator.
-
Bashar schrieb:
Bei Array-Initialisierern ist es erlaubt, also wahrscheinlich auch bei enum.
Ich würde sagen, dass es nicht erlaubt ist. Da ich aber gerade in der Uni bin, habe ich natürlich keinen Standard bei der Hand. Allerdings bestätigt der Comeau-Compiler meine Annahme:
error: trailing comma is nonstandard
enum {A, B, };
-
Hallo again,
wie eine google-groups-Suche nach "trailing comma + enum" ergeben hat, ist das weder in Standard-C noch in Standard-C++ erlaubt. Ist also eine Compilererweiterung.
-
Schade, dann ist das inkonsistent zu Array-Initialisierern:
initializer-clause: assignment-expression { initializer-list ,opt } { }
-
Danke für die schnelle Auskunft. Werde ich dann in Zukunft wohl besser vermeiden.
Bye, TGGC \-/