Comparing to zero is faster in most architectures and still is a valid optimization. There shouldn't be any problems with cache misses either, if the architecture does stream detection it should do it for reversed streams too and if it doesn't (only detecting actual misses) doing it in reverse isn't a problem.
A good compiler should take care of that optimization for you (VC11 certainly does).
And where does that leave the âoeclassicâ Slashdot page
Real Users are afraid they'll break the machine -- but they're never afraid to break your face.