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