gpt4 book ai didi

c++ - 如何解决C++中的异步任务错误

转载 作者:行者123 更新时间:2023-12-01 15:10:32 25 4
gpt4 key购买 nike

在我的C++程序中,我创建了两个重载函数doSomething()和doSomething(int,int)。我的问题是,当我通过传递(异步,doSomething,a,b)参数来调用异步任务时,编译器会给出“调用异步没有匹配功能”错误。因此,伙计们如何在异步任务下传递两个arg doSomething(int,int)函数。
我的代码:

void doSomething(){ // do some work}
void doSomething(int &a, int &b){ // do some work}

int main(){

int a = 34, b = 44;
auto f = std::async(std::launch::async, doSomething, std::ref(a), std::ref(b));

}

最佳答案

问题在于类型推断为“doSomething”。如果不指定,则将其推导为“void()”,因此您应显式指定要使用的其他函数类型:

auto f = std::async<void(int&,int&)>(std::launch::async, doSomething, std::ref(a), std::ref(b));

关于c++ - 如何解决C++中的异步任务错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62512853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com