Try blocks are trying

Carl Sturtivant sturtivant at
Sun Oct 10 16:12:31 UTC 2021

Why is it that a try block is defined to establish a scope?

     try {
         auto x = frgl();
     // ...
     // x undefined here

What is the benefit of this? If try (like static if/foreach) did 
NOT establish a scope, then this annoyance would go away. And if 
a scope was desired for some reason, then an extra pair of braces 
could be written within.

Right now rewriting the above requires getting the return type of 
frgl and declaring x to be of that type before the try block.

Design error?

More information about the Digitalmars-d mailing list