Add smart_ptr/intrusive_ptr