Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.std.c++ > #292

Re: New strongly type enum... why not use "using"?

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail
From "peter miller"<fuchsia.groan@virgin.net>
Newsgroups comp.std.c++
Subject Re: New strongly type enum... why not use "using"?
Date Mon, 12 Sep 2011 11:18:26 -0700 (PDT)
Organization virginmedia.com
Lines 49
Sender std-cpp-request@vandevoorde.com
Approved stephen.clamage@oracle.com
Message-ID <op.v1or91r412d93i@deadyawn> (permalink)
References <4e49ea26$2@news.x-privat.org> <j2inpn$aa2$1@dont-email.me> <j33rkg$qrl$1@dont-email.me> <j352gi$7n1$1@localhost.localdomain> <j38ert$b18$1@dont-email.me> <buo4o0nr2td.fsf@dhlpc061.dev.necel.com>
Content-Type text/plain; charset=iso-8859-15; format=flowed; delsp=yes
X-Trace news.albasani.net 8eoklP9BwT48962hkGWLFDpG9KUH6++Sgn8OpjSgBgPoDncIQvWpZATVXLuD6hj5POIl3iHvAVM942IXgweRFQ==
NNTP-Posting-Date Mon, 12 Sep 2011 18:18:27 +0000 (UTC)
Injection-Info news.albasani.net; logging-data="PbDy/a7yfV13iVFhY9WlCK5mxMT5TyCHNhJ+pC/6qGXqKDWB0kPjpkS2n5cW7ZtNzD2nLOfPF6uibRzhW5gGPVRRYnsW+/EHA5zFivvwxJVqpjO+vy9mYdLgn178/mBC"; mail-complaints-to="abuse@albasani.net"
X-Mailer Perl5 Mail::Internet v2.05
X-Submission-Address std-cpp-submit@vandevoorde.com
Cancel-Lock sha1:XRxNAHrWMdbkIiMlNRhfnFI9JeI=
X-Original-Date Mon, 12 Sep 2011 09:23:51 +0100
Xref x330-a1.tempe.blueboxinc.net comp.std.c++:292

Show key headers only | View raw


Hi Miles,

>  That sort of usage seems very common in existing code, by doing
>  something like:
>
>     enum X { a, b, X_MAX };
>     enum Y { d = X_MAX + 1, e, Y_MAX };


It is common. But surely the most C++ way to solve it, is with
a "using" declaration, i.e. change the enumerator-definition
(7.2/1) to be:

_enumerator-definition_:
  _enumerator_
  _enumerator_ = _constant-expression_
  using _enum-key_ _identifier_

so that you can write:

enum Y { using enum X, d, e, Y_max };

and the "using declaration" imports all members of X into Y.

The sensible value of d would be the last value in X, plus one;
but if it's easier for compiler-writers, it could be the highest
value in X, plus one.

This approach also allows me to code:

enum Z { a, b, c };

enum Z_count { using enum Z, Z_MAX };

enum { Z_MAX = Z_count::Z_MAX };

And now I don't pollute Z with Z_MAX - which always seemed
conceptually wrong to me.

Peter

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/


[ comp.std.c++ is moderated.  To submit articles, try posting with your ]
[ newsreader.  If that fails, use mailto:std-cpp-submit@vandevoorde.com ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]

Back to comp.std.c++ | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

New strongly type enum proposal featuring inherited enums Phil Bouchard <philippe@fornux.com> - 2011-08-16 21:28 -0600
  Re: New strongly type enum proposal featuring inherited enums Daniel Krügler <daniel.kruegler@googlemail.com> - 2011-08-18 07:54 -0600
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard<philippe@fornux.com> - 2011-08-24 14:06 -0700
      Re: New strongly type enum proposal featuring inherited enums Daniel Krügler<daniel.kruegler@googlemail.com> - 2011-08-24 17:39 -0700
        Re: New strongly type enum proposal featuring inherited enums Bart van Ingen Schenau<bart@ingen.ddns.info> - 2011-08-25 20:51 -0600
          Re: New strongly type enum proposal featuring inherited enums =3D?ISO-8859-15?Q?Daniel_Kr=3DFCgler?=3D <daniel.kruegler@googlemail.= com> - 2011-09-07 11:08 -0700
            Re: New strongly type enum proposal featuring inherited enums Miles Bader <miles@gnu.org> - 2011-09-08 14:46 -0700
              Re: New strongly type enum... why not use "using"? "peter miller"<fuchsia.groan@virgin.net> - 2011-09-12 11:18 -0700
                Re: New strongly type enum... why not use "using"? Miles Bader<miles@gnu.org> - 2011-09-13 09:29 -0700
                Re: New strongly type enum... why not use "using"? "peter miller"<fuchsia.groan@virgin.net> - 2011-09-15 14:13 -0700
  Re: New strongly type enum proposal featuring inherited enums Pete Becker <pete@versatilecoding.com> - 2011-08-18 07:51 -0600
    Re: New strongly type enum proposal featuring inherited enums Victor Bazarov<v.bazarov@comcast.invalid> - 2011-08-24 14:06 -0700
    Re: New strongly type enum proposal featuring inherited enums Paavo Helde<myfirstname@osa.pri.ee> - 2011-08-24 14:06 -0700
    Re: New strongly type enum proposal featuring inherited enums Francis Glassborow<francis.glassborow@btinternet.com> - 2011-08-24 14:52 -0700
      Re: New strongly type enum proposal featuring inherited enums Phil Bouchard<philippe@fornux.com> - 2011-08-24 17:39 -0700
  Re: New strongly type enum proposal featuring inherited enums Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2011-08-18 07:53 -0600
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard<philippe@fornux.com> - 2011-08-24 14:52 -0700
  Re: New strongly type enum proposal featuring inherited enums Marcel Müller <news.5.maazl@spamgourmet.com> - 2011-08-18 07:52 -0600
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard<philippe@fornux.com> - 2011-08-23 18:20 -0700
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard <philippe@fornux.com> - 2011-08-24 14:52 -0700
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard <philippe@fornux.com> - 2011-08-24 14:52 -0700
  Re: New strongly type enum proposal featuring inherited enums Francis Glassborow<francis.glassborow@btinternet.com> - 2011-08-24 14:06 -0700
  Re: New strongly type enum proposal featuring inherited enums "Bo Persson"<bop@gmb.dk> - 2011-08-24 14:06 -0700
  Re: New strongly type enum proposal featuring inherited enums red floyd<no.spam.here@its.invalid> - 2011-08-24 14:06 -0700
  Re: New strongly type enum proposal featuring inherited enums Seungbeom Kim<musiphil@bawi.org> - 2011-08-24 14:06 -0700
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard<philippe@fornux.com> - 2011-08-24 17:39 -0700
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard<philippe@fornux.com> - 2011-08-24 17:40 -0700
    Re: New strongly type enum proposal featuring inherited enums Phil Bouchard<philippe@fornux.com> - 2011-08-24 17:40 -0700

csiph-web