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