H.D*_*Das 1 c++ multithreading c++14
在我的 C++ 程序中,我创建了两个重载函数 doSomething() 和 doSomething(int, int)。我的问题是,当我通过传递 (async, 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));
}
Run Code Online (Sandbox Code Playgroud)
问题在于“doSomething”的类型推导。没有指定它被推导出为“void()”,因此您应该明确指定要使用的不同函数类型:
auto f = std::async<void(int&,int&)>(std::launch::async, doSomething, std::ref(a), std::ref(b));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |