std::atomic_ref<T>:: is_lock_free
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
atomic_ref::is_lock_free
|
||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
| Constants | ||||
|
bool
is_lock_free
(
)
const
noexcept
;
|
(desde C++20) | |
Comprueba si las operaciones atómicas en este objeto están libres de bloqueo.
Contenidos |
Parámetros
(ninguno)
Valor de retorno
true si las operaciones atómicas en este objeto son libres de bloqueo, false en caso contrario.
Notas
Todos los tipos atómicos excepto std::atomic_flag pueden ser implementados usando mutexes u otras operaciones de bloqueo, en lugar de usar las instrucciones atómicas libres de bloqueo de la CPU. También se permite que los tipos atómicos sean a veces libres de bloqueo, por ejemplo, si solo los accesos a memoria alineados son naturalmente atómicos en una arquitectura dada, los objetos desalineados del mismo tipo deben usar bloqueos.
El estándar de C++ recomienda (pero no requiere) que las operaciones atómicas lock-free también sean address-free, es decir, adecuadas para la comunicación entre procesos que utilizan memoria compartida.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
[static]
|
indica que el tipo es siempre libre de bloqueo
(constante de miembro estática pública) |