0

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

4

0 回答 0