スレッドをベースにした簡単なチュートリアルをやっています。この練習では、お互いのためにスレッドを待つことになっています。 私はnamespace std;
を使用しておらず、代わりにstd::
を書く必要があるという例外を除いて、例のコードをそのままコピーしました。condition.wait_for intellisenseエラー
問題のエラーがラインに対応:
if (condition.wait_for(std::unique_lock<std::mutex>(mut), std::chrono::seconds(3)))
インテリセンスは、と言われます「という表現は、ブール型を持つ(またはブール値に変換可能)しなければならない」が、私はcondition.wait_for
上のドキュメントを見て、 std::cv_status::timeout
,std::cv_status::no_timeout
、およびtrue
およびfalse
を返すことができます。私がビルドに行くとき、それはstd::cv_status
だけを返すことができると思う。
正しく動作するはずですか? 3番目のパラメータが必要ですか?私が次の例では使用していません。
「wait_for」関数は2つあります。それらのうちの1つは「ブール」を返し、もう1つは返りません。あなたはそうでない人を呼んでいます。 –