|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
shared_lock::operator= | ||||
| Shared locking | ||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
shared_lock& operator=( shared_lock&& other)noexcept; | (since C++14) | |
Move assignment operator. Equivalent toshared_lock{std::move(other)}.swap(*this);return*this;.
Ifother is the same object as*this, there is no effect.
Otherwise, if prior to this call*this has an associated mutex ((mutex() returns a non-null pointer) and has acquired ownership of it (owns() returnstrue), the mutex is unlocked by callingunlock_shared(). After this call,other has no associated mutex.
| other | - | anothershared_lock to replace the state with |
*this
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 4172 | C++14 | self-move-assignment ofshared_lock was incorrectly specified | respecified as no-op |