On Thursday, 17 September 2020 at 13:13:46 UTC, Simen Kjærås wrote:


To quote Bill Baxter from way back when
(https://forum.dlang.org/post/fjdc4c$2gft$1...@digitalmars.com):

> Why does:
>     final int x = 3;
> make any more intuitive sense than:
>     enum int x = 3;
> ?

There are these things called "words". And they have "meanings"...
enum: (short for "enumeration", the noun form of "enumerate")
   "to specify one after another : list"
final:
   "not to be altered or undone <all sales are final>"

To be clear: I don't mind 'enum' being used this way, but if I were to do things over again, I would have used 'alias'.


Well, I was already using anonymous enums for compile-time constants anyway. For example, when translating C headers with lots of #defined constants (OpenGL is the poster child), I was doing this in Derelict:

enum {
   GL_THIS = ...,
   GL_THAT = ...,
}

So enum for this has always made sense to me. I would have been fine with final, but it would have been a leap for me because of my Java background; I would have kept seeing it as a synonym for const. And I would never have liked the Alias approach.

But no matter what solution would have been implemented (final, Alias, new keyword), I would have looked it up then, put my head down and gotten right back to writing code. It just happens the one that's most intuitive to me was picked :-)

Reply via email to