std::shared_lock<Mutex>::operator=
From cppreference.com
< cpp | thread | shared lock
| shared_lock& operator=( shared_lock&& other ) noexcept; |
(C++14以降) | |
ムーブ代入演算子。 shared_lock{std::move(other)}.swap(*this); return *this; と同等です。
もし other が *this と同じオブジェクトである場合、効果はありません。
そうでなく、この呼び出しの前に *this が関連付けられたミューテックスを持ち ((mutex() がヌルでないポインタを返す) かつそれを所有している (owns() が true を返す) 場合、ミューテックスは unlock_shared() を呼び出すことでアンロックされます。この呼び出しの後、other は関連付けられたミューテックスを持ちません。
[編集] パラメータ
| その他 | - | 状態を置き換える別の shared_lock |
[編集] 戻り値
*this
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 4172 | C++14 | shared_lock の自己ムーブ代入が誤って指定されていました |
何もしない操作として再指定されました |