Namespaces
Variants

std::shared_lock<Mutex>:: operator=

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
shared_lock & operator = ( shared_lock && other ) noexcept ;
(desde C++14)

Operador de asignación de movimiento. Equivalente a shared_lock { std :: move ( other ) } . swap ( * this ) ; return * this ; .

Si other es el mismo objeto que * this , no hay ningún efecto.

De lo contrario, si antes de esta llamada * this tiene un mutex asociado (( mutex() devuelve un puntero no nulo) y ha adquirido su propiedad ( owns() devuelve true ), el mutex se desbloquea llamando a unlock_shared() . Después de esta llamada, other no tiene mutex asociado.

Parámetros

otro - otro shared_lock para reemplazar el estado con

Valor de retorno

* this

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 4172 C++14 la auto-asignación de movimiento de shared_lock estaba incorrectamente especificada reespecificada como no-operación