2

lock_guardにはBasicLockableの概念で十分なようですが、標準ドラフト(N3242)では、MutexテンプレートパラメーターにLockableが必要です。何らかの理由 ?

4

1 に答える 1

2

n3290(§30.4.2.1[thread.lock.guard] / 1)では、次のように述べています。

タイプのオブジェクトはlock_guard、スコープ内のロック可能なオブジェクトの所有権を制御します。オブジェクトは、オブジェクトの存続期間中(3.8)lock_guard、ロック可能なオブジェクトの所有権を維持します。によって参照されるロック可能なオブジェクトがオブジェクトの存続期間全体にわたって存在しないlock_guard場合、プログラムの動作は未定義です。提供されるタイプは、要件(30.2.5.2)を満たしている必要があります。pmlock_guardMutexBasicLockable

n3242の2番目の段落は、おそらく編集上の誤りです。これはライブラリの欠陥です。2023:との要件が正しくlock_guardありunique_lockません。n3278:最近の同時実行の問題の解決に示すように、段落はn3290で削除されます。

于 2012-12-16T12:11:30.283 に答える