Re: enums that are really just sets of constants
- From: Ian Arkver <ian arkver dev gmail com>
- To: Kjell Ahlstedt <kjellahlstedt gmail com>, gtkmm <gtkmm-list gnome org>
- Subject: Re: enums that are really just sets of constants
- Date: Tue, 23 May 2017 09:58:09 +0100
On 23/05/17 08:51, Kjell Ahlstedt wrote:
Den 2017-05-13 kl. 10:04, skrev Kjell Ahlstedt:
Yet another suggestion in
https://bugzilla.gnome.org/show_bug.cgi?id=86864#c43
Can we decide what to do with the few enums that we want to be
implicitly convertible to int? My suggestion in
https://bugzilla.gnome.org/show_bug.cgi?id=86864#c43 is
class ResponseType_Enum final
{
public:
enum ResponseType
{
NONE = -1,
REJECT = -2,
ACCEPT = -3,
...
};
ResponseType_Enum() = delete;
};
using ResponseType = ResponseType_Enum::ResponseType;
I tried to make a mixture of a plain (old-style) enum and an enum class.
It shall be implicitly convertible to int, and its enumerators shall be
scoped. In other respects it shall be possible to use it as if it's an
enum, e.g.
ResponseType r = ResponseType::REJECT;
int i = r;
but not
r = REJECT;
i = REJECT;
and preferably not
r = i;
Daniel has remarked that _Enum is not a good suffix for a class name. I
agree. Can you think of a better suffix? I don't want to call the class
/ResponseType/. That would clash with /using ResponseType = .../. If it
shall be possible to use /ResponseType/ as if it's the name of an enum,
it must be the name of an enum or an alias for a name of an enum. Or are
there other possibilities that are not too complicated?
ResponseType_Values maybe?
Regards,
Ian
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]