condition.wait_for intellisense错误

时间:2017-10-07 22:21:16

标签: c++ multithreading

我正在做一个基于线程的简单教程。在本练习中,我应该让线程相互等待。 我已经逐字复制了示例代码,但我没有使用namespace std;,而是在每次需要时都在std::写入。

有问题的错误对应于以下行:

if (condition.wait_for(std::unique_lock<std::mutex>(mut), std::chrono::seconds(3)))

Intellisense告诉我“表达式必须具有bool类型(或者可以转换为bool)”但我查找了condition.wait_for上的文档,它可以返回std::cv_status::timeoutstd::cv_status::no_timeout as以及truefalse。当我去构建时,它认为它只能返回std::cv_status

它应该正常吗?它需要第三个参数吗?我正在关注的例子没有使用。

1 个答案:

答案 0 :(得分:0)

正如Bo所说,该功能有两个版本。我将假设示例中有一个拼写错误,它意味着使用带有三个参数的函数版本,这里是一些工作代码,我不知道它是否与预期的示例相同。< / p>

websockets.py