What is that "enum function" supposed to be ?
jj_1337 at live.dk
Tue Jul 20 10:09:32 UTC 2021
On Tuesday, 20 July 2021 at 09:15:42 UTC, Patrick Schluter wrote:
> On Monday, 19 July 2021 at 21:31:40 UTC, Paul Backus wrote:
>> On Monday, 19 July 2021 at 21:16:57 UTC, Elmar wrote:
>>> I'd like to know:
>>> - What does return type `enum` mean?
>> It just means `auto`. Probably it shouldn't be allowed at all,
>> but D's parser is sometimes overly-permissive and will accept
>> things like this even when they don't really make sense.
> The issue is that people misunderstand `auto` and type
> inference. It's a variable definition with initializer and a
> storage class WITHOUT a type.
> The grammar is clear though
> StorageClasses AutoAssignments ;
> StorageClass StorageClasses
>> For example, you can also declare a `@nogc` variable:
>> @nogc x = new Object;
> deprecated x = new Object;
> @dummy y = 1;
>> The `@nogc` attribute doesn't do anything here, but the
>> compiler allows it anyway.
You can also do confusing things like this:
@safe x = 12;
D is almost like "just give me whatever, if I can use it then
I'll use it, if I can't then I'll skip it.
More information about the Digitalmars-d