Create smart_ptr.h