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