Add support for multiple overloaded smart pointer constructors.