Did you know that the return value optimization is one of the very few compiler optimizations that are allowed to change the observable behaviour of a C++ program? SOMEFACTS.com