How the hell is it useful? If you have: { int x; { double x; // use x } } And you comment out or remove "double x", you've just introduced a bug in your code.