@@ -1580,13 +1580,15 @@ class _LIBCPP_EXPORTED_FROM_ABI __sp_mut {
15801580
15811581_LIBCPP_EXPORTED_FROM_ABI __sp_mut& __get_sp_mut (const void *);
15821582
1583+ # if _LIBCPP_STD_VER < 26 || defined(_LIBCPP_ENABLE_CXX26_REMOVED_SHARED_PTR_ATOMICS)
1584+
15831585template <class _Tp >
1584- inline _LIBCPP_HIDE_FROM_ABI bool atomic_is_lock_free (const shared_ptr<_Tp>*) {
1586+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI bool atomic_is_lock_free (const shared_ptr<_Tp>*) {
15851587 return false ;
15861588}
15871589
15881590template <class _Tp >
1589- _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp> atomic_load (const shared_ptr<_Tp>* __p) {
1591+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp> atomic_load (const shared_ptr<_Tp>* __p) {
15901592 __sp_mut& __m = std::__get_sp_mut (__p);
15911593 __m.lock ();
15921594 shared_ptr<_Tp> __q = *__p;
@@ -1595,25 +1597,28 @@ _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp> atomic_load(const shared_ptr<_Tp>* __p) {
15951597}
15961598
15971599template <class _Tp >
1598- inline _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp> atomic_load_explicit (const shared_ptr<_Tp>* __p, memory_order) {
1600+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp>
1601+ atomic_load_explicit (const shared_ptr<_Tp>* __p, memory_order) {
15991602 return std::atomic_load (__p);
16001603}
16011604
16021605template <class _Tp >
1603- _LIBCPP_HIDE_FROM_ABI void atomic_store (shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) {
1606+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI void atomic_store (shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) {
16041607 __sp_mut& __m = std::__get_sp_mut (__p);
16051608 __m.lock ();
16061609 __p->swap (__r);
16071610 __m.unlock ();
16081611}
16091612
16101613template <class _Tp >
1611- inline _LIBCPP_HIDE_FROM_ABI void atomic_store_explicit (shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order) {
1614+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI void
1615+ atomic_store_explicit (shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order) {
16121616 std::atomic_store (__p, __r);
16131617}
16141618
16151619template <class _Tp >
1616- _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp> atomic_exchange (shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) {
1620+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp>
1621+ atomic_exchange (shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) {
16171622 __sp_mut& __m = std::__get_sp_mut (__p);
16181623 __m.lock ();
16191624 __p->swap (__r);
@@ -1622,13 +1627,13 @@ _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp> atomic_exchange(shared_ptr<_Tp>* __p, shar
16221627}
16231628
16241629template <class _Tp >
1625- inline _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp>
1630+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI shared_ptr<_Tp>
16261631atomic_exchange_explicit (shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order) {
16271632 return std::atomic_exchange (__p, __r);
16281633}
16291634
16301635template <class _Tp >
1631- _LIBCPP_HIDE_FROM_ABI bool
1636+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI bool
16321637atomic_compare_exchange_strong (shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w) {
16331638 shared_ptr<_Tp> __temp;
16341639 __sp_mut& __m = std::__get_sp_mut (__p);
@@ -1646,23 +1651,25 @@ atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, share
16461651}
16471652
16481653template <class _Tp >
1649- inline _LIBCPP_HIDE_FROM_ABI bool
1654+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI bool
16501655atomic_compare_exchange_weak (shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w) {
16511656 return std::atomic_compare_exchange_strong (__p, __v, __w);
16521657}
16531658
16541659template <class _Tp >
1655- inline _LIBCPP_HIDE_FROM_ABI bool atomic_compare_exchange_strong_explicit (
1660+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI bool atomic_compare_exchange_strong_explicit (
16561661 shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w, memory_order, memory_order) {
16571662 return std::atomic_compare_exchange_strong (__p, __v, __w);
16581663}
16591664
16601665template <class _Tp >
1661- inline _LIBCPP_HIDE_FROM_ABI bool atomic_compare_exchange_weak_explicit (
1666+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI bool atomic_compare_exchange_weak_explicit (
16621667 shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w, memory_order, memory_order) {
16631668 return std::atomic_compare_exchange_weak (__p, __v, __w);
16641669}
16651670
1671+ # endif // _LIBCPP_STD_VER < 26 || defined(_LIBCPP_ENABLE_CXX26_REMOVED_SHARED_PTR_ATOMICS)
1672+
16661673#endif // !defined(_LIBCPP_HAS_NO_THREADS)
16671674
16681675_LIBCPP_END_NAMESPACE_STD
0 commit comments