std::experi...k_ptr::store(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸŽ€ NAME πŸŽ€

std::experimental::atomic_weak_ptr::store β€” the one and only std::experimental::atomic_weak_ptr::store (yes, the original lists it twice, and we’re keeping that iconic little echo πŸ’…).

okay so bestie, welcome to the <pink>std::experi...k_ptr::store(3)</pink> page from the <purple>C++ Standard Libary</purple> β€” this one is all about storing a weak_ptr into an atomic variable, with memory-order flavor ✨.


✨ Synopsis ✨

void store( weak_ptr<T> desired, std::memory_order order =
std::memory_order_seq_cst ) noexcept;

It atomically replaces the current value with desired. The memory effects depend on the value of order. 🫢

🚨 real talk: order must be one of std::memory_order_relaxed, std::memory_order_release, or std::memory_order_seq_cst. If it’s anything else, the behavior is undefined β€” bestie, do not test fate on this one 😭.

πŸ’– Parameters πŸ’–

  • desired β€” the weak_ptr to store into the atomic variable.
  • order β€” memory order constraints to enforce.

πŸ¦‹ Return value πŸ¦‹

(none) β€” ngl, nothing comes back. It’s giving β€œdo the thing, return nothing” energy πŸ’€.

🌸 Remarks 🌸

All changes to the atomic_weak_ptr object itself, plus all associated use_count increments, are guaranteed to be performed atomically. The associated use_count decrements take place after the atomic operation, but they are not required to be part of it. Any associated destruction or deallocation operations also take place after the atomic operation and are not part of it. ✨


🌈 See also 🌈

  • stores a value into an operator= atomic_weak_ptr object (public member function)
  • std::atomic_is_lock_free(std::shared_ptr)
  • std::atomic_load(std::shared_ptr)
  • std::atomic_load_explicit(std::shared_ptr)
  • std::atomic_store(std::shared_ptr)
  • std::atomic_store_explicit(std::shared_ptr)
  • specializes atomic operations for std::shared_ptr (function template)
  • std::atomic_exchange(std::shared_ptr)
  • std::atomic_exchange_explicit(std::shared_ptr)
  • std::atomic_compare_exchange_weak(std::shared_ptr)
  • std::atomic_compare_exchange_strong(std::shared_ptr)
  • std::atomic_compare_exchange_weak_explicit(std::shared_ptr)
  • std::atomic_compare_exchange_strong_explicit(std::shared_ptr)
  • (deprecated in C++20)
  • (removed in C++26)

okay bestie, that’s the whole page β€” source/version/date vibes: <cyan>http://cppreference.com</cyan>, <mint>2024.06.10</mint>, for <pink>std::experi...k_ptr::store(3)</pink>. slay and stay atomic πŸ’…βœ¨πŸ«Ά

πŸ“¦ where this page comes from