More operators inside `is(...)` expressions

Stefan Koch uplink.coder at googlemail.com
Mon Aug 24 12:39:08 UTC 2020


On Monday, 24 August 2020 at 12:34:13 UTC, Adam D. Ruppe wrote:
> On Monday, 24 August 2020 at 12:28:27 UTC, Stefan Koch wrote:
>> 2) Adding a special syntax for what I perceive to be an 
>> uncommon case
>
> This is a very common case because void is frequently special 
> cased. You cannot have a local variable of type void meaning 
> any time you want to work with a generic function return value, 
> you can't just be like `T ret = call(); return ret;`, you must 
> check if T != void before doing that.
>
> What I usually do though is static if(is(T == void)) call(); 
> else { ret = call(); /* process ret */ return ret; } but it is 
> obnoxious to duplicate that call every time still.
>
> Lots of Phobos things also return void as the special case of 
> "not found".
>
> What I'd love is if we didn't have to special case void all the 
> time... but we do, making some variant of this specific check 
> pretty common.

I see.
So `T != void` is special because it doesn't really play well 
with the other types.

That clarifies the motivation.

Thanks for explaining Adam.


More information about the Digitalmars-d mailing list