Is std::atomic<std::weak_ptr>::compare_exchange_* guaranteed to work if the underlying pointer is expired?
I have a block of code where std::atomic<std::weak_ptr<T>>
doesn’t behave the way I would have expected if the underlying weak pointer is expired: