If you could make any changes to D, what would they look like?

H. S. Teoh hsteoh at quickfur.ath.cx
Wed Oct 27 19:31:52 UTC 2021

On Wed, Oct 27, 2021 at 07:19:31PM +0000, Dukc via Digitalmars-d wrote:
> ```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.

Returning a void-initialized (i.e., *un*initialized) result invokes UB.
The compiler is free to do (or not do) whatever it wants in this case.


Only boring people get bored. -- JM

More information about the Digitalmars-d mailing list