来自互斥锁的显式std :: unique_lock构造函数

时间:2015-11-26 02:44:43

标签: c++ c++11 mutex implicit-conversion explicit-constructor

我看到带有互斥锁的构造函数重载标记为explicit。我没有看到指定它的原因。我认为允许从互斥锁到相应的std::unique_lock的隐式转换是没有害处的。这实际上很方便。例如,给定void func_a(std::unique_lock<std::mutex> lock)std::mutex mut,我们可以直接在func_a mut上调用func_a(mut)。对电话func_a(mut)可能造成的潜在伤害是什么?我认为没有任何可能让用户感到惊讶的效果。所以,问题是:标记构造函数explicit背后的基本原理是什么?

0 个答案:

没有答案