--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 <wfunct...@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? >