Why is creating of if Expressions not allowed?

sighoya sighoya at gmail.com
Sun Mar 24 18:18:39 UTC 2019


On Sunday, 24 March 2019 at 16:57:25 UTC, Rémy Mouëza wrote:
> On Sunday, 24 March 2019 at 16:18:49 UTC, sighoya wrote:
>> Why
>>
>> auto GenIf()()
>> {
>>     return mixin("if(true) { return true;} else {return 
>> false;}");
>> }
>>
>> public bool testFunction2()
>> {
>>     GenIf!();
>> }
>>
>>
>> gives me:
>>
>> onlineapp.d-mixin-3(3): Error: expression expected, not if
>> onlineapp.d(8): Error: template instance `onlineapp.GenIf!()` 
>> error instantiating
>
> Because D uses if statements, no if expressions.
> The equivalent of an if expression is the ternary operator:
>     bool-condition ? if-true : if-false;

Hmm..., sounds like bad news. Is there any mixin technology for 
statements?



More information about the Digitalmars-d-learn mailing list