Я пытаюсь подключить функцию-член до обратного вызова std::function
. Тип обратного вызова:Нет жизнеспособного перегруженного '=' для назначения функции std :: function в качестве функции-члена
std::function<void(Touch*, Event*)>
Моя функция член:
void Game::onTouchEnded(Touch* touch, Event* event)
При попытке назначить функцию обратного вызова, используя следующие:
listener->onTouchEnded = bind(&Game::onTouchEnded, this);
я получаю ошибку No viable overloaded '='
с несколькими кандидатами , Вот подробности того, что я считаю, наиболее уместными:
Candidate function not viable: no known conversion from
'__bind<void (Game::*)(cocos2d::Touch *, cocos2d::Event *), Game *>'
to
'std::__1::function<void (cocos2d::Touch *, cocos2d::Event *)>'
for 1st argument`
Я попробовал несколько различных Bind() меры, но я не уверен, что ошибка говорит мне. Типы кажутся правильными с точки зрения параметров и возвращаемого значения, поэтому я не уверен, почему он не примет его?
Попробуйте добавить два 'std :: placeholders'. – LogicStuff
Вам нужно передать второй параметр – sunny1304
@LogicStuff @ sunny1304 Мне нечего больше связывать. Эти параметры будут переданы * me * в обратном вызове. Я просто привязываю функцию к этому, чтобы я мог использовать функцию-член как обратный вызов. – aardvarkk