Namensräume
Varianten
Aktionen

C++-Attribut: optimize_for_synchronized (TM TS)

Von cppreference.com
< cpp‎ | language‎ | attributes
 
 
C++ Sprache
Allgemeine Themen
Kontrollfluss
Bedingte Ausführungsaussagen
if
Iterationsanweisungen (Schleifen)
for
Bereichs-for (C++11)
Sprunganweisungen
Funktionen
Funktionsdeklaration
Lambda-Funktionsausdruck
inline-Spezifizierer
Dynamische Ausnahmespezifikationen (bis C++17*)
noexcept-Spezifizierer (C++11)
Ausnahmen
Namensräume
Typen
Spezifizierer
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Speicherdauer-Spezifizierer
Initialisierung
Ausdrücke
Alternative Darstellungen
Literale
Boolesch - Ganzzahl - Gleitkommazahl
Zeichen - String - nullptr (C++11)
Benutzerdefinierte (C++11)
Dienstprogramme
Attribute (C++11)
Typen
typedef-Deklaration
Typalias-Deklaration (C++11)
Umwandlungen
Speicherzuweisung
Klassen
Klassenspezifische Funktionseigenschaften
explicit (C++11)
static

Spezielle Member-Funktionen
Templates
Sonstiges
 
 
Attribute
(C++23)
(C++11)(bis C++26)
(C++14)
(C++20)
(C++17)
(C++11)
optimize_for_synchronized
(TM TS)
(C++20)
 

Gibt an, dass die Funktionsdefinition für die Ausführung von einer synchronized-Anweisung optimiert werden sollte.

Inhalt

[bearbeiten] Syntax

[[optimize_for_synchronized]]

[bearbeiten] Erklärung

Gilt für den Namen, der in einer Funktionsdeklaration deklariert wird, welche die erste Deklaration der Funktion sein muss.

Gibt an, dass die Funktionsdefinition für die Ausführung von einer synchronized-Anweisung optimiert werden sollte. Insbesondere vermeidet es die Serialisierung von synchronized-Blöcken, die einen Aufruf einer Funktion tätigen, die für die Mehrheit der Aufrufe Transaktions-sicher ist, aber nicht für alle Aufrufe.

[bearbeiten] Beispiel

[bearbeiten] Referenzen

  • Transactional Memory TS (ISO/IEC TS 19841:2015)
  • 7.6.6 Attribut zur Optimierung in synchronized-Blöcken [dcl.attr.sync]