Treating Smart Pointers Like Regular References