你能专注于std :: unique_lock

时间:2018-10-11 03:19:14

标签: c++ locking c++14 mutex c++17

我们使用的互斥锁具有一个奇怪的接口(例如,奇怪的大小写)。为std::unique_lock专门化将有助于减少使用此互斥锁的认知开销。

我在标准中找不到专门允许专门std::unique_lock使用的任何内容。考虑到这一点,我认为允许std::unique_lock的专业化没有什么不利的方面。有人可以确认它确实不是该标准所指定的(并因此引起Demo后面的未定义行为)吗?

如果允许的话,有人可以指出标准中的那部分吗?

1 个答案:

答案 0 :(得分:2)

您可以为自己的互斥锁类型专门设置std::unique_lock

[namespace.std]/1

  

程序可以为任何标准库添加模板专业化   仅当声明依赖于   用户定义的类型和专业化符合标准库   原始模板的要求,但未明确   禁止。

本节中没有std::unique_lock明确禁止专门化的内容。因此,一般规则适用。