Article View: comp.std.c
Article #5219Re: enums
From: "D. Hugh Redelmeier"
Date: Sun, 24 Jul 1988 21:47
Date: Sun, 24 Jul 1988 21:47
32 lines
1691 bytes
1691 bytes
In article <1608@dataio.Data-IO.COM> bright@Data-IO.COM (Walter Bright) writes:
>From reading the grammar for enums in the Ansi spec, it seems that the
>following is not allowed:
>
> enum abc { }; /* empty member list */
> enum def { b, }; /* trailing comma */
>
>Many compilers accept this, and I've run across code that uses it. Any
>thoughts? Is this an oversight in the spec?
I submitted a comment on the trailing comma during the first public
review period. So it isn't an oversight, but I do think that it is
a mistake. I am not sure how I feel about empty enums (perhaps a
good definition for void might be: "typedef void enum {};" :-).
Here is my comment:
Section 3.5.2.3, page 54, line 17 [of the then-current draft]
I think that an enumerator-list should be optionally terminated by a
comma. This is analogous to the way an initializer is optionally
terminated by a comma (3.5.6 61@21). The benefits are similar (a
terminator is less error-prone than a separator (consider Pascal's
semicolon)).
This is currently legal in the two compilers I use (the Ritchie
compiler (the original implementation of enum, so it should carry
some weight), and System V VAX UNIX PCC). I do use the feature.
Hugh Redelmeier
{utcsri, utzoo, yunexus, hcr}!redvax!hugh
In desperation: hugh@csri.toronto.edu
+1 416 482 8253
Technical Details
Message-ID:
<8807242307.AA27481@explorer.dgp.toronto.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!dgp.toronto.edu!hughReferences:
<1608@dataio.Data-IO.COM>Show Full Headers
Complete Article Headers
Newsgroups: comp.std.c
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!dgp.toronto.edu!hugh
From: hugh@dgp.toronto.edu ("D. Hugh Redelmeier")
Subject: Re: enums
Message-ID: <8807242307.AA27481@explorer.dgp.toronto.edu>
Organization: University of Toronto, CSRI
References: <1608@dataio.Data-IO.COM>
Date: Sun, 24 Jul 88 17:47:14 EDT