If you could make any changes to D, what would they look like?
Dukc
ajieskola at gmail.com
Wed Oct 27 19:19:31 UTC 2021
On Monday, 25 October 2021 at 14:34:24 UTC, IGotD- wrote:
>> - pure
>
> Agreed, if you don't want a function messing around with a
> global state, don't mess around with a global state, easy. You
> don't need a badge for that. I'm sure there are holes in the
> pure rule that the compiler cannot detect as well.
`pure` is also supposed to be an optimization aid. I was about to
say that you're right about that holes thing, because of stuff
like this one:
```d
pure short coming()
{ typeof(return) result = void;
return result; //may return anything
}
```
But when you think of it, why should this be a problem? This one
returns an implementation defined value. If a compiler skips
repeated calls to this one because of the `pure` attribute and
just reuses the value from the first call, so what? Because the
return values are implementation defined, the compiler is free to
have them all to be the same with regards to each other.
More information about the Digitalmars-d
mailing list