On Friday, 27 May 2016 at 18:03:23 UTC, Steven Schveighoffer
wrote:
I didn't change the default. The default is to pick the first
member and use that as the init value. I may not have even
considered what foo.init might be when I was creating my enum.
-Steve
by default i ment this
enum foo
{
bar
}
foo f;
if(f) "dosnt print".writeln;
but i understand what you mean which adds a problem to my
checkThen template, as the return type of the template depends on
the return type of the callable which right now returns the init
value of the callable return type if the type you pass into the
template evaluates to false.
an example:
class Foo { int x; }
Foo foo(){ return null; }
foo.checkThen!( f => f.x = 5; ).writeln; // writes f.x.init
because i kinda need a common return type if foo wouldnt return
null