CTFE and return statement from delegate
Rajesh
joseph.rajesh at gmail.com
Tue Jul 1 14:57:40 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.
Sorry, I didn't see the reference to 15.13.0.2.
But when I read section 15.13.2 of dlang documentation, which
says, "Constructors are defined with a function name of this and
have no return value" my interpretation was that this prohibits
returning an explicit value (like return 5;).
However, I thought a plain return; statement for control flow
(like an early exit) was still allowed.
Could you please let me know if I've misunderstood this point? I
appreciate your help in clarifying.
More information about the Digitalmars-d-learn
mailing list