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;
}
오류는 다음과 같습니다 : 다음 코드는 컴파일에 실패
'비동기'에 대한 호출에 대한 일치 기능 : 후보 템플릿 무시 : 대체 실패 [FP가 = 표준 : _1과 : : 기능 &, ARGS = <>] : 표준 '에서'형식 ':: _1 :: __ invoke_of라는 이름의 유형>
그것을인가 그냥 가능한 표준 : : 함수 객체에 비동기 사용하거나 내가 오전 없습니다 뭔가 잘못하고 있는거야?
'async'는 functor 인수를 어디에서 가져 옵니까? 'std :: function'을 전달해보십시오. –
juanchopanza