Select constructor based on the argument types