On Sunday, 6 November 2016 at 05:07:10 UTC, Andrei Alexandrescu
wrote:
// possible future D
if ((auto variable = fun()) != 42) {
...
}
Defining a variable in an expression wouldn't be allowed
everywhere (but might be contemplated later as an possibility,
which is a nice thing about this syntax).
I like it but it would have to require the parantheses, or you
could get ambiguities like:
if (auto variable = noParensGetSomeT == true) {
// is variable of type T or bool, if T can be implicitly cast?
}
A more approachable thing to do is allow variable definitions
in switch statements:
switch (auto x = fun() { ... }
It is surprising that doesn't work, which is a good argument in
favor of the feature (removal of an undue limitation, rule of
least astonishment etc).
This I can get behind, would start using it right away.
Andrei