Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::atomic_fetch_xor,std::atomic_fetch_xor_explicit

      From cppreference.com
      <cpp‎ |atomic
       
       
      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
      atomic_fetch_xoratomic_fetch_xor_explicit
      (C++11)(C++11)
      Free functions for atomic flags
       
      Defined in header<atomic>
      template<class T>

      T atomic_fetch_xor(std::atomic<T>* obj,

                         typenamestd::atomic<T>::value_type arg)noexcept;
      (1)(since C++11)
      template<class T>

      T atomic_fetch_xor(volatilestd::atomic<T>* obj,

                         typenamestd::atomic<T>::value_type arg)noexcept;
      (2)(since C++11)
      template<class T>

      T atomic_fetch_xor_explicit(std::atomic<T>* obj,
                                   typenamestd::atomic<T>::value_type arg,

                                   std::memory_order order)noexcept;
      (3)(since C++11)
      template<class T>

      T atomic_fetch_xor_explicit(volatilestd::atomic<T>* obj,
                                   typenamestd::atomic<T>::value_type arg,

                                   std::memory_order order)noexcept;
      (4)(since C++11)

      Atomically replaces the value pointed byobj with the result of bitwise XOR between the old value ofobj andarg. Returns the valueobj held previously.

      The operation is performed as if the following is executed:

      1,2)obj->fetch_xor(arg)
      3,4)obj->fetch_xor(arg, order)

      Ifstd::atomic<T> has nofetch_xor member (this member is only provided forintegral types exceptbool), the program is ill-formed.

      Contents

      [edit]Parameters

      obj - pointer to the atomic object to modify
      arg - the value to bitwise XOR to the value stored in the atomic object
      order - the memory synchronization ordering

      [edit]Return value

      The value immediately preceding the effects of this function in themodification order of*obj.

      [edit]Example

      This section is incomplete
      Reason: no example

      [edit]Defect reports

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

      DRApplied toBehavior as publishedCorrect behavior
      P0558R1C++11exact type match was required because
      T was deduced from multiple arguments
      T is only deduced
      fromobj

      [edit]See also

      atomically performs bitwise XOR between the argument and the value of the atomic object and obtains the value held previously
      (public member function ofstd::atomic<T>)[edit]
      replaces the atomic object with the result of bitwise OR with a non-atomic argument and obtains the previous value of the atomic
      (function template)[edit]
      replaces the atomic object with the result of bitwise AND with a non-atomic argument and obtains the previous value of the atomic
      (function template)[edit]
      C documentation foratomic_fetch_xor,atomic_fetch_xor_explicit
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/atomic/atomic_fetch_xor&oldid=161344"

      [8]ページ先頭

      ©2009-2025 Movatter.jp