Is there any case in which putting code within brackets to reduce its scope is something that I might want to do, or is this one of those cases in which you guys will tell me, “If you need to do that in your code, then your code is badly written.”
For example:
//***CODE****
{
int foo=stuff;
//use foo, and then I'm done using it forever
}
//****MORE CODE****
Yes, because this has the advantage that any local variables in that block will be destroyed at the end of the block. This is especially useful if you have some kind of scope guard that you want to release as soon as possible, e.g.,
Note, however, that the use of a scope block like this is indicative of your code needing to be refactored: the contents of the block can usually be split out into a separate function, which can be named and reused.