sharedptr引用计数减被封装成如下的函数 ```c++ void _M_decref() noexcept { if (_M_refcnt.fetch_sub(1, std::memory_order_relaxed) == 1) { delete this; } } ``` 该if块先判断原始引用计数是否等于1,如果为真则进行delete。然而判断和delete是两个操作,并不是一个原子操作。是否存在这样一种情况:判断条件成立,但在delete前有其它线程给引用计数+1?此时进行delete就出错了吧