Namespaces
Variants

C++ attribute: optimize_for_synchronized (TM TS)

From cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous
Attributes
(C++23)
(C++11) (until C++26)
(C++14)
(C++20)
(C++17)
(C++11)
optimize_for_synchronized
(TM TS)
(C++20)

Indique que la définition de la fonction doit être optimisée pour l'invocation depuis une instruction synchronisée .

Table des matières

Syntaxe

[ [ optimize_for_synchronized ] ]

Explication

S'applique au nom déclaré dans une déclaration de fonction, qui doit être la première déclaration de la fonction.

Indique que la définition de la fonction doit être optimisée pour l'invocation depuis une instruction synchronisée . En particulier, elle évite de sérialiser les blocs synchronisés qui effectuent un appel à une fonction qui est sécurisée pour les transactions pour la majorité des appels, mais pas pour tous les appels.

Exemple

Références

  • Transactional Memory TS (ISO/IEC TS 19841:2015) :
  • 7.6.6 Attribut pour l'optimisation dans les blocs synchronisés [dcl.attr.sync]