std::atomic<std::shared_ptr<T>> operations seem to generate lock-free
code without _Sp_locker and mutexes, while
std::atomic_*(std::shared_ptr<T>*) operations use _Sp_locker. But
std::atomic_is_lock_free and std::atomic::is_lock_free
show exactly the opposite. Maybe I don't interpret that correctly? What
does that supposed to mean?
https://godbolt.org/z/818v6sMGb
--
Bogdan Sinisyn