If you make good use of move semantics and return value optimizations. you can avoid using pointers in many more cases in the first place.<p>Using pointers <i>only</i> where really needed reduces your risk of memory leaks.