The typical reasoning behind the introduction of rvalue references into C++ is to *eliminate (optimize) superfluous copying* during the evaluation of complex C++ expressions.

However, there are two *compiler optimization techniques* for C++98/C++03, which basically serve the same purpose, namely

* **[Return value optimization](http://en.wikipedia.org/wiki/Return_value_optimization)**
* **[Copy elision](http://en.wikipedia.org/wiki/Copy_elision)**

Is there any real-world use case, when the above techniques (with appropriately written code) fail to eliminate superfluous copying, but rvalue references can succeed?