问题来源于需要将项目的share_ptr<T> 改成const T。如果一个普通指针ptr而言,如果用其构造智能指针sm_ptr,那么sm_pt在引用结束的时候会delete一次ptr。
如果ptr的new以及delete不由我们管理(也就是说外部还有一个delete),这个时候就double free了。
总结一下,除非是自己new出来的指针,不然最好不要用普通指针构建shared_ptr。