I remember hearing that lining up all scope members in the beginning of the block was no longer recommended practice with both C and C++, but does this mean it obstructs the compiler in some way when generating code, or simply that it is no longer necessary to do it, because it is not always convenient? A.K.A is it more efficient for the compiler to generate optimal allocation if locals are declared on demand?