Во-первых: я прочитал связанные вопросы и решения, которые не исправили ошибку.
учитывая:
double foo(cv::InputArray Input1,
cv::InputArray Input2,
cv::InputOutputArray InOut,
cv::TermCriteria criteria=cv::TermCriteria(cv::TermCriteria::MAX_ITER+cv::TermCriteria::EPS, 50, 0.001)),
cv::InputArray Input3 = cv::noArray())
{
return 2;
}
Если я вызову функцию с помощью:
cv::Mat In1, In2, InOut; //dummy for test
double ret = foo(In1, In2, InOut);
он компилируется; но когда я пытаюсь его направить, я получаю эту ошибку:
нет типа с именем "тип" в классе std::result
double ret = 0;
std::thread th(ret, &foo, &In1, &In2, InOut);
Итак, я попытался использовать std::ref, но получил ту же ошибку:
double ret = 0;
std::thread th(ret, &foo, std::ref(In1), std::ref(In2), std::ref(InOut));
std::thread::thread
, я не думаю, что это сработает. - person apple apple   schedule 09.11.2017