@Eight Bit : It seemed like magic to me too. What? Just by adding a virtual declaration? Zero overhead? Impossibru!
In computer class (a long time ago), we once analized the assembly output of -o 1 and -o 3 (optimization flag). I do not remember which architecture, might have been Sun OS workstations, there was a delay of 1 cycle before a jump to a function, so without optimization it would be:
1. put parameters of the function in the stack
2. jump to the function subtroutine
3. nop (wait until the subtroutine actually runs)
4. get the values back
With optimization on it will switch steps 1 and 2, and skip 3... which looked very weird to me, but saves 1 cycle.
I then managed to make code that ran without optimizations, and locked the machine with... (my faulty code)