6
是否可以使用std :: async调用使用std :: bind创建的函数对象。下面的代码无法编译:可以std :: async调用std :: function对象吗?
#include <iostream>
#include <future>
#include <functional>
using namespace std;
class Adder {
public:
int add(int x, int y) {
return x + y;
}
};
int main(int argc, const char * argv[])
{
Adder a;
function<int(int, int)> sumFunc = bind(&Adder::add, &a, 1, 2);
auto future = async(launch::async, sumFunc); // ERROR HERE
cout << future.get();
return 0;
}
的错误是:
否调用 '异步' 匹配功能: 候选模板忽略:替换故障[与计划生育=的std :: _1: :功能&,参数数量= <>]:无类型命名为“性病 '类型' :: _1 :: __ invoke_of,>
难道只是不可能异步使用具有的std ::函数对象还是我做错了什么?
从哪里'async'获得函数参数?尝试传递'std :: function'。 –
juanchopanza