Namensräume
Varianten
Aktionen

std::atomic_fetch_max, std::atomic_fetch_max_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_maxatomic_fetch_max_explicit
(C++26)(C++26)
Freie Funktionen für atomare Flags
 
Definiert in Header <atomic>
template< class T >

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

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

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

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

T atomic_fetch_max_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_max_explicit( volatile std::atomic<T>* obj,
                             typename std::atomic<T>::value_type arg,

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

Atomar ersetzt den Wert, auf den obj zeigt, durch das Ergebnis von std::max 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_max(arg)
3,4) obj->fetch_max(arg, order)

Wenn std::atomic<T> keinen fetch_max Member hat (dieser Member wird nur für ganzzahlige und Zeigertypen außer bool bereitgestellt), ist das Programm schlecht geformt.

Inhalt

[edit] Parameter

obj - Zeiger auf das zu modifizierende atomare Objekt
arg - der Wert, mit dem std::max den im atomaren Objekt gespeicherten Wert vergleicht
Reihenfolge - die Speicher-Synchronisationsreihenfolge

[edit] Rückgabewert

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

[edit] Hinweise

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

[edit] Beispiel

[edit] Siehe auch

(C++26)
führt atomar std::max zwischen dem Argument und dem Wert des atomaren Objekts durch und erhält den zuvor gehaltenen Wert
(öffentliche Memberfunktion von std::atomic<T>) [edit]
ersetzt das atomare Objekt durch das Ergebnis von std::min mit einem nicht-atomaren Argument und gibt den vorherigen Wert des atomaren Objekts zurück
(Funktions-Template) [bearbeiten]