std::future的错误用法

Wrong usage of std::future?

本文关键字:用法 错误 future std      更新时间:2023-10-16

我已经把我的一个错误归结到这个小片段中,但我不明白为什么它不起作用。

#include <future>
int main()
{
    int ret = 0;
    std::future<int> parseSentence = std::async(std::launch::async, []() { return 3;} );
    ret = parseSentence.get();  
    return ret;
}

代码是有效的,但是helgrind发现一个种族状况正在发生。由于日志有点长,我把它放在一个单独的文件中,可以在这里找到。

有人能告诉我我在这里做错了什么吗?

代码是正确的,因此如果存在竞争条件,则在future或其同伴的实现中。