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)

Indica que la definición de la función debe ser optimizada para invocación desde una sentencia sincronizada .

Contenidos

Sintaxis

[ [ optimize_for_synchronized ] ]

Explicación

Se aplica al nombre que se declara en una declaración de función, que debe ser la primera declaración de la función.

Indica que la definición de la función debe optimizarse para invocación desde una declaración sincronizada . En particular, evita serializar bloques sincronizados que realizan una llamada a una función que es transaction-safe para la mayoría de las llamadas, pero no para todas las llamadas.

Ejemplo

Referencias

  • Transactional Memory TS (ISO/IEC TS 19841:2015):
  • 7.6.6 Atributo para optimización en bloques sincronizados [dcl.attr.sync]