Confusion/trying to understand CTFE keywords
Stefan Koch
uplink.coder at googlemail.com
Tue Jun 5 22:08:32 UTC 2018
On Tuesday, 5 June 2018 at 18:00:05 UTC, Steven Schveighoffer
wrote:
> No, it's definitely a bug. main is not being evaluated at
> compile time. The real result of this function should be a
> compile-time error -- __ctfe is a *runtime* value that is
> always defined based on whether you are __ctfe or not.
> Therefore, n must be a runtime value, and not usable as a
> static array dimension.
>
> If the posted code is valid, then this should be valid as well:
>
> static if(__ctfe)
> immutable n = 1;
> else
> immutable n = 2;
>
> But it's not.
>
> -Steve
I see what you mean.
I fear fixing this bug will not be easy without breaking arguably
valid uses.
More information about the Digitalmars-d-learn
mailing list