Using aliasing constructor to create a smart pointer