CTFE and return statement from delegate
Nick Treleaven
nick at geany.org
Thu Jul 3 15:34:00 UTC 2025
On Monday, 30 June 2025 at 14:30:49 UTC, Manfred Nowak wrote:
> On Sunday, 29 June 2025 at 13:06:38 UTC, Rajesh wrote:
>
> [...]
>
> ```d
>> struct Problem {
>> this(int val) {
>> foreach (int number; myType)
>> return;
> ```
>
> [...]
>> Is there a restriction [...]
>
> Yes.
>
> 'this' is not allowed to have a 'return' (15.13.0.2) ...
> and to exit a 'foreach'-loop needs a 'break' (12.11.0.6).
>
> So the compiler should not compile that program even for
> runtime.
`return` can be used to exit `foreach` (as can `goto` or
`throw`), and `return;` can be used in a constructor. The latter
I'll look at clarifying in the spec. The issue from this thread
is just a limitation of CTFE.
More information about the Digitalmars-d-learn
mailing list