При попытке использовать std :: threads я оказался с этой ошибкой.
error C2064: term does not evaluate to a function taking 1 arguments
File: functional
Line:1152
Закомментировав несколько строк, я обнаружил, что ошибка исходит от конструктора.
Я также использую irrlicht, поэтому переменная события.
Вот объявление потока:
t1=new thread((&EventReceiver::KeyInput3),event);
Заголовок функции:
int EventReceiver::KeyInput3(const SEvent& event)
Пробовал строить его по-разному, но никто не работал.
Что я должен сделать, чтобы избавиться от ошибки?
Я предполагаю, что KeyInput
не является статической функцией-членом, поэтому вам нужно передать указатель на экземпляр EventReceiver
первый:
EventReceiver* p = ...;
std::thread t(&EventReceiver::KeyInput3, p, event);
Других решений пока нет …