Add non-reference-counter smart pointer support