add C++_smart_ptr