return val if

Dennis dkorpel at gmail.com
Sun Mar 22 19:04:03 UTC 2020


On Sunday, 22 March 2020 at 18:48:32 UTC, Abby wrote:
> Is there a way to create a template that would do the same is 
> glib
>
> g_return_val_if_fail() 
> (https://developer.gnome.org/glib/stable/glib-Warnings-and-Assertions.html#g-return-val-if-fail)

I'm not famililar with glib, but the description:

> If expr evaluates to FALSE, the current function should be 
> considered to have undefined behaviour (a programmer error).

Sounds a lot like:

```
assert(expr);
```

> I was hoping something like this would work
>
> template returnValIfFail(alias expr, alias val)
> {
>     if(expr) return val;
> }

It would have to be a string mixin, you can't inject a return 
statement otherwise.
The thing is, why do you want that? It seems shorter to just 
write it out:

if(expr) return val;
debug if(expr) return val;
returnValIfFail!(expr, val);




More information about the Digitalmars-d-learn mailing list