Namensräume
Varianten
Aktionen

std::atomic_fetch_min, std::atomic_fetch_min_explicit

Von cppreference.com
< cpp‎ | atomic
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
atomic_fetch_minatomic_fetch_min_explicit
(C++26)(C++26)
Freie Funktionen für atomare Flags
 
Definiert in Header <atomic>
template< class T >

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

                    typename std::atomic<T>::value_type arg ) noexcept;
(1) (seit C++26)
template< class T >

T atomic_fetch_min( volatile std::atomic<T>* obj,

                    typename std::atomic<T>::value_type arg ) noexcept;
(2) (seit C++26)
template< class T >

T atomic_fetch_min_explicit( std::atomic<T>* obj,
                             typename std::atomic<T>::value_type arg,

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

T atomic_fetch_min_explicit( volatile std::atomic<T>* obj,
                             typename std::atomic<T>::value_type arg,

                             std::memory_order order ) noexcept;
(4) (seit C++26)

Ersetzt atomar den Wert, auf den obj zeigt, durch das Ergebnis von std::min zwischen dem alten Wert von obj und arg. Gibt den Wert zurück, den obj zuvor enthielt. Die Operation wird so ausgeführt, als ob Folgendes ausgeführt worden wäre:

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

Wenn std::atomic<T> keine fetch_min-Mitgliedsfunktion hat (dieses Mitglied wird nur für Ganzzahltypen und Zeigertypen außer bool bereitgestellt), ist das Programm ill-formed.

Inhalt

[bearbeiten] Parameter

obj - Zeiger auf das zu modifizierende atomare Objekt
arg - der Wert, der mit dem Wert im atomaren Objekt verglichen werden soll (std::min)
Reihenfolge - die Speicher-Synchronisationsreihenfolge

[bearbeiten] Rückgabewert

Der Wert, der den Effekten dieser Funktion in der Modifikationsreihenfolge von *obj unmittelbar vorausging.

[bearbeiten] Hinweise

Feature-Test-Makro Wert Std Feature
__cpp_lib_atomic_min_max 202403L (C++26) Atomare Minimum-/Maximumoperationen

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

(C++26)
führt std::min atomar zwischen dem Argument und dem Wert des atomaren Objekts aus und liefert den zuvor gehaltenen Wert
(public member function of std::atomic<T>) [bearbeiten]
ersetzt das atomare Objekt durch das Ergebnis von std::max mit einem nicht-atomaren Argument und gibt den vorherigen Wert des atomaren Objekts zurück
(Funktions-Template) [bearbeiten]