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