Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::atomic_ref<T>::fetch_sub

      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
      Operations for arithmetic types
      (exceptbool and pointer-to-object)
      atomic_ref::fetch_sub
      Operations for integral types
      (exceptbool and pointer-to-object)
      Operations for integral types
      (exceptbool)
      Constants
       
      Provided only whenT is an arithmetic type other thancvbool or a pointer-to-object type
      value_type fetch_sub( difference_type arg,

                           std::memory_order order=

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

      Atomically replaces the current value of the referenced object with the result of arithmetic subtraction of the value andarg. This operation is a read-modify-write operation. Memory is affected according to the value oforder.

      • For signed integral types, arithmetic is defined to use two’s complement representation. There are no undefined results.
      • For floating-point types, thefloating-point environment in effect may be different from the calling thread's floating-point environment. The operation need not be conform to the correspondingstd::numeric_limits traits but is encouraged to do so. If the result is not a representable value for its type, the result is unspecified but the operation otherwise has no undefined behavior.
      • For pointer types, the result may be an undefined address, but the operation otherwise has no undefined behavior.

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

      Contents

      [edit]Parameters

      arg - the other argument of arithmetic subtraction
      order - memory order constraints to enforce

      [edit]Return value

      The value referenced by*ptr, immediately preceding the effects of this function.

      [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
      LWG 3508
      (P3323R1)
      C++20fetch_sub was meaningless forconst Tconstrained to accept only non-constT
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/atomic/atomic_ref/fetch_sub&oldid=179599"

      [8]ページ先頭

      ©2009-2025 Movatter.jp