STD::ATOMIC(3cxx)

πŸ’… std::atomic< _Tp >(3cxx) β€” atomic-teen dream πŸ’…

okay so bestie, welcome to the std::atomic< _Tp > page from libstdc++, manual section (3cxx). it’s literally the generic atomic type + primary class template, and it’s giving main character energy fr fr. 🫢✨

🌸 NAME 🌸

std::atomic< _Tp > β€” the generic atomic type, primary class template. periodt. πŸ’–

✨ SYNOPSIS ✨

start with this include, bestie:

#include <atomic>

πŸŽ€ Public Types πŸŽ€

  • using value_type = _Tp β€” the public type alias, exactly as written. no cap. πŸ’…

πŸ’– Public Member Functions πŸ’–

  • constexpr atomic (_Tp __i) noexcept β€” constructor taking _Tp __i, and it’s constexpr + noexcept. cute. ✨
  • atomic (const atomic &)=delete β€” this constructor overload is =delete, so it’s a hard no. 🚫
  • bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) noexcept β€” the strong compare-exchange overload with memory_order __m=memory_order_seq_cst, noexcept. πŸ’…
  • bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept β€” same strong overload, but volatile, same default memory_order __m=memory_order_seq_cst, noexcept. πŸŒ€
  • bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) noexcept β€” strong overload with memory_order __s, memory_order __f, noexcept. ⭐
  • bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) volatile noexcept β€” same strong overload but volatile, with memory_order __s, memory_order __f, noexcept. πŸ’«
  • bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) noexcept β€” the weak compare-exchange overload with memory_order __m=memory_order_seq_cst, noexcept. πŸ“
  • bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept β€” same weak overload, but volatile, same default memory_order __m=memory_order_seq_cst, noexcept. 🧚
  • bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) noexcept β€” weak overload with memory_order __s, memory_order __f, noexcept. 🌸
  • bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) volatile noexcept β€” same weak overload but volatile, with memory_order __s, memory_order __f, noexcept. πŸ¦‹
  • _Tp exchange (_Tp __i, memory_order __m=memory_order_seq_cst) noexcept β€” exchange with _Tp __i, default memory_order __m=memory_order_seq_cst, noexcept. πŸ”₯
  • _Tp exchange (_Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept β€” same exchange but volatile, default memory_order __m=memory_order_seq_cst, noexcept. πŸ’œ
  • bool is_lock_free () const noexcept β€” is_lock_free(), const, noexcept. πŸ‘‘
  • bool is_lock_free () const volatile noexcept β€” same is_lock_free() but const volatile, noexcept. 🌈
  • _Tp load (memory_order __m=memory_order_seq_cst) const noexcept β€” load with default memory_order __m=memory_order_seq_cst, const, noexcept. ⭐
  • _Tp load (memory_order __m=memory_order_seq_cst) const volatile noexcept β€” same load but const volatile, default memory_order __m=memory_order_seq_cst, noexcept. πŸ’«
  • operator _Tp () const noexcept β€” conversion operator to _Tp, const, noexcept. πŸŽ€
  • operator _Tp () const volatile noexcept β€” same conversion operator but const volatile, noexcept. πŸŒ€
  • _Tp operator= (_Tp __i) noexcept β€” assignment from _Tp __i, noexcept. πŸ’–
  • _Tp operator= (_Tp __i) volatile noexcept β€” same assignment from _Tp __i but volatile, noexcept. ✨
  • atomic & operator= (const atomic &) volatile=delete β€” assignment from const atomic & is volatile=delete. 🚫
  • atomic & operator= (const atomic &)=delete β€” assignment from const atomic & is =delete. 🚫
  • void store (_Tp __i, memory_order __m=memory_order_seq_cst) noexcept β€” store with _Tp __i, default memory_order __m=memory_order_seq_cst, noexcept. 🌸
  • void store (_Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept β€” same store but volatile, default memory_order __m=memory_order_seq_cst, noexcept. πŸ¦‹

πŸ¦‹ Detailed Description πŸ¦‹

here’s the raw template snippet, exactly as the page gives it:

template<typename _Tp>
    struct std::atomic< _Tp >"Generic atomic type, primary class template.

in human terms: it’s the generic atomic type, and it’s the primary class template. slay. πŸ’…

🌈 Template Parameters 🌈

  • _Tp β€” type to be made atomic, must be trivially copyable. that’s the rule, bestie. 🫢

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for libstdc++ from the source code. so yeah, Doxygen auto-generated this for libstdc++ straight from the source β€” robot author moment. πŸ€–βœ¨


okay that’s the whole page, bestie πŸ’– source/version: libstdc++; manual page: std::atomic< _Tp >(3cxx); date in the footer: not printed, so no cute date to give you. bye, slay, and may your atomics be iconic πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from