为什么 std::unique_lock 有默认构造函数?

Why does std::unique_lock have a default constructor?

我在看 Louis Brandy 的 this talk 时,一位观众问了这个显而易见的问题:

Why does std::unique_lock have a default constructor?

现在我必须知道了。

unique_lock可移动。它有一个基本上 "empty" 的移出状态,不与任何互斥体关联。也可以通过调用 release().

来达到此状态

鉴于此状态的存在,以及拥有默认构造函数的好处(例如能够创建任意大小的动态数组),添加创建相同状态的默认构造函数是个好主意。