static try?
kenji hara
k.hara.pg at gmail.com
Tue Nov 1 10:04:38 PDT 2011
--1;
It you want to reduce duplication of long code, you can use string mixin.
enum code = q{ ...long code... };
static if (is(typeof({ mixin(code); })))
{
mixin(code);
}
else
{
...
}
Kenji Hara
2011/10/31 Mehrdad <wfunction at hotmail.com>:
> I've written this piece of code a fair number of times:
>
> static if (is(typeof(foo()))) { foo(); }
> else { bar(); }
>
> When the expression inside the condition (i.e. the call to foo()) gets
> complicated, you get lots of code duplication and things become harder to
> read.
>
> So I'm thinking, why not just introduce a 'static try'?
>
> Something like:
>
> static try
> {
> foo();
> }
> catch // (string ex) // perhaps let them know what the error is?
> {
> bar();
> }
>
> It's a clean and immensely readable improvement IMO, and it doesn't
> introduce any new keywords or any breaking changes to anything.
>
> How's the idea?
>
More information about the Digitalmars-d
mailing list