jfpu::shared_ptr
add weak_ptr