2

看起来BasicLockable概念对于lock_guard来说已经足够了,但是在标准草案(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: and的要求不正确lock_guardunique_lock,并且在 n3290 中删除了该段落,如n3278:Recent Concurrency Issue Resolutions中所示

于 2012-12-16T12:11:30.283 回答