lock_guardにはBasicLockableの概念で十分なようですが、標準ドラフト(N3242)では、MutexテンプレートパラメーターにLockableが必要です。何らかの理由 ?
質問する
286 次
1 に答える
2
n3290(§30.4.2.1[thread.lock.guard] / 1)では、次のように述べています。
タイプのオブジェクトは
lock_guard
、スコープ内のロック可能なオブジェクトの所有権を制御します。オブジェクトは、オブジェクトの存続期間中(3.8)lock_guard
、ロック可能なオブジェクトの所有権を維持します。によって参照されるロック可能なオブジェクトがオブジェクトの存続期間全体にわたって存在しないlock_guard
場合、プログラムの動作は未定義です。提供されるタイプは、要件(30.2.5.2)を満たしている必要があります。pm
lock_guard
Mutex
BasicLockable
n3242の2番目の段落は、おそらく編集上の誤りです。これはライブラリの欠陥です。2023:との要件が正しくlock_guard
ありunique_lock
ません。n3278:最近の同時実行の問題の解決に示すように、段落はn3290で削除されます。
于 2012-12-16T12:11:30.283 に答える