Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::atomic_ref<T>::exchange

      From cppreference.com
      <cpp‎ |atomic‎ |atomic ref
       
       
      Concurrency support library
      Threads
      (C++11)
      (C++20)
      this_thread namespace
      (C++11)
      (C++11)
      (C++11)
      Cooperative cancellation
      Mutual exclusion
      Generic lock management
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      Condition variables
      (C++11)
      Semaphores
      Latches and Barriers
      (C++20)
      (C++20)
      Futures
      (C++11)
      (C++11)
      (C++11)
      Safe reclamation
      Hazard pointers
      Atomic types
      (C++11)
      (C++20)
      Initialization of atomic types
      (C++11)(deprecated in C++20)
      (C++11)(deprecated in C++20)
      Memory ordering
      (C++11)(deprecated in C++26)
      Free functions for atomic operations
      Free functions for atomic flags
       
      std::atomic_ref
      Member functions
      atomic_ref::exchange
      Operations for arithmetic types
      (exceptbool and pointer-to-object)
      Operations for integral types
      (exceptbool and pointer-to-object)
      Operations for integral types
      (exceptbool)
      Constants
       
      value_type exchange( value_type desired,

                           std::memory_order order=

                               std::memory_order_seq_cst)constnoexcept;
      (constexpr since C++26)

      Atomically replaces the value of the referenced object withdesired. The operation is a read-modify-write operation. Memory is affected according to the value oforder.

      This overload participates in overload resolution only ifstd::is_const_v<T> isfalse.

      [edit]Parameters

      desired - value to assign
      order - memory order constraints to enforce

      [edit]Return value

      The value of the referenced object before the call.

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 3508
      (P3323R1)
      C++20exchange was meaningless forconst Tconstrained to accept only non-constT
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/atomic/atomic_ref/exchange&oldid=179567"

      [8]ページ先頭

      ©2009-2026 Movatter.jp