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


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

Re: New strongly type enum proposal featuring inherited enums

From Daniel Krügler<daniel.kruegler@googlemail.com>
Newsgroups comp.std.c++
Subject Re: New strongly type enum proposal featuring inherited enums
Date 2011-08-24 17:39 -0700
Organization albasani.net
Message-ID <j33rkg$qrl$1@dont-email.me> (permalink)
References <4e49ea26$2@news.x-privat.org> <j2inpn$aa2$1@dont-email.me> <4e4d462b@news.x-privat.org>

Show all headers | View raw


Am 24.08.2011 23:06, schrieb Phil Bouchard:
>  On 8/18/2011 9:54 AM, Daniel Krügler wrote:
>>
>>>  2) Inheriting from another enum would be quite useful. For example:
>>>  enum class Widget {button, combobox, listview};
>>>  enum class SuperWidget : Widget {iconview}
>>
>>  The current state would not disallow such an extension in the future,
>>  so what is the problem?
>
>  I don't think it'll be a good idea to make the two coexist together:
>  enum class SuperWidget : Widget {iconview} // derived
>  enum class SuperWidget : unsigned int {iconview} // subtyping

I'm missing the rationale for your dislike. Widget is still a type that
has an integral type as underlying type, so what is the drastic
difference, if you extend scoped enums to allow for extending another
enum? We have no enumeration values in integral types, so we have we
don't have an observable difference. If you want to define that
SuperWidget contains the enumeration values of Widget, this is simply a
definition problem.

>>>  3) Redefining the underlying type could be easily done with:
>>>  enum class Val { unsigned long E1, E2, E3, E4 };
>>>
>>>  This is much more neat and is similar to a declaration of multiple
>>>  instances:
>>>  const unsigned long E1, E2, E3, E4;
>>
>>  I don't consider this alternative as superior as the current state. To
>>  me it looks, as if Ei (i=1-4) are data members of Val. It would imply
>>  to me that I could write
>>
>>  enum class Val { unsigned long E1; unsigned long E2; unsigned long E3,
>>  unsigned long E4; };
>>
>>  Does that mean that we could also use different underlying types for
>>  individual enumerator values?
>
>  Only one declaration would be allowed. A semicolon could even be accepted:
>  enum class Val { unsigned long E1, E2, E3, E4; };

You are starting now a design which comes way too late, C++11 has left
the house. We can proceed discussing this here, but I must say, I'm
failing to see the advantages. The current specification is now part of
an International Standard and I could not find any arguments in this
thread that demonstrate the defect of the current specification.

Greetings from Bremen,

- Daniel Krügler



-- 
[ 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