"Correct" way to return empty shared_ptr?