Any code that doesn't call constructor at the top of the block can either be
a) rewriten with pointers and dynamic allocation as with nv's example (slow, leak prone even)
b) rewritten so that there is an extra pair of braces not associated with conditional execution (unneccesary).
Is there anyone who didn't come from coding in C, and thus didn't get into the habit of thinking that all variable declarations should be at the top of the block, but who still refrains from ever putting variables in the middle of a block?