2
BasicLockable概念似乎已經足夠用於lock_guard,但在標準草案(N3242)中,對於互斥模板參數需要Lockable。任何原因 ?爲什麼lock_guard要求可鎖定概念
BasicLockable概念似乎已經足夠用於lock_guard,但在標準草案(N3242)中,對於互斥模板參數需要Lockable。任何原因 ?爲什麼lock_guard要求可鎖定概念
在n3290(§30.4.2.1[thread.lock.guard]/1),它說,
類型的對象
lock_guard
控制可鎖定對象的範圍內的所有權。對象在整個lock_guard
對象的生命週期(3.8)中維護可鎖定對象的所有權。如果在lock_guard
對象的整個生命週期中不存在由pm
引用的可鎖定對象,則程序的行爲未定義。 提供的Mutex
型號應符合BasicLockable
要求(30.2.5.2)。
n3242中的第二段可能是編輯錯誤。這是library defect 2023: Incorrect requirements for lock_guard
and unique_lock
,該段落在n3290中被刪除,如n3278: Recent Concurrency Issue Resolutions
所示,你說的沒錯,措辭已經改變。 – ashen