는 MSDN에서 make_task
는 Function
당신이 전달 함수 타입을하는 task_handle<Function>
반환
주면서 명명 할 수없는 종류가 있으므로 두 가지 옵션이 std::function
에서 람다를 포장입니다 있습니다.
struct ClassContainingTask {
ClassContainingTask(int Input1, int *Output1, int *Output2) :
t1(std::function<void()>([&]{ParProcess(Input1,Output1,Output2);}))
{}
task_handle<std::function(void())> t1;
};
또는 클래스 템플릿 만들기 및 task_handle
만드는 템플릿 매개 변수 :
template<typename F>
struct ClassContainingTask {
ClassContainingTask(F &&f) : t1(std::forward<F>(f))
{}
task_handle<typename std::decay<F>::type> t1;
};
template<typename F>
ClassContainingTask<F>
make_ClassContainingTask_helper(F &&f) {
return ClassContainingTask<F>(std::forward<F>(f));
}
//Call this to create the ClassContainingTask instantiated
//with the appropriate template parameter
auto make_ClassContainingTask = [](int Input1, int *Output1, int *Output2) {
return make_ClassContainingTask_helper([&]{ParProcess(Input1,Output1,Output2);});
};
,
Thanks 'Mankarse'.i는 template_handle을 템플릿 매개 변수로 만들려고하지만 vC++은 많은 오류가 발생합니다. 이 사건에 대한 예를 써주시겠습니까? – user3807383