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.

Reply via email to