我正在阅读的文档,std::mutex::try_lock
上面有这个例子:
#include <iostream>
#include <mutex>
int main()
{
std::mutex test;
if (test.try_lock() == true)
std::cout << "lock acquired" << std::endl;
else
std::cout << "lock not acquired" << std::endl;
test.unlock(); // now unlock the mutex
test.lock(); // to lock it again
if (test.try_lock()) // true can be left out
std::cout << "lock acquired" << std::endl;
else
std::cout << "lock not acquired" << std::endl;
test.lock(); // and now the finale (a block)
}
在第二个 if 语句中,他说 true 可以省略。为什么第二个会这样,而第一个不会。我检查了一下,它说try_lock
返回一个布尔值,那么它怎么可能不是真假,从而使== true
检查变得多余?