I\'ve always wondered this - why can\'t you declare variables after a case label in a switch statement? In C++ you can declare variables pretty much anywhere (and declaring
You can declare variables within a switch statement if you start a new block:
switch (thing) { case A: { int i = 0; // Completely legal } break; }
The reason is to do with allocating (and reclaiming) space on the stack for storage of the local variable(s).