On 9/28/2016 3:12 PM, Idan Arye wrote:
Consider this:
try {
auto foo = Foo();
} catch (FooCreationException) {
// ...
} else {
foo.doSomethingWithFoo();
}
I agree with Steven. Having the 'else' continue on with a scope that is already
closed by } is very weird and unsettling.
You could argue that D already does this with static if:
static if (x)
{
int x;
}
x = 3;
and that disturbs some people. But it is conditional compilation, and no other
way around it has been proposed, and it has major benefits. (C++'s static if
proposal does not allow this, a decision that I predict they'll come to regret.)
Adding more cases of this sort of thing should be approached with great
trepidation, and is not justified if it is only a minor improvement.