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