Нужно создать указатель на метод класса ВНУТРИ класса
Суть такая: у меня есть std::map<(Класс какого-то триггера), (указатель на метод, который должен использовать поля объекта)>
Если триггер сработал, я исполняю соответствующую ему функцию. Триггеры и методы я добавляю внутри конструктора класса. Лямбда функции использовать в моём случае не удобно
Ответы (1 шт):
Автор решения: Koto SCrafter
→ Ссылка
Как оказалось, я забыл что изначально использовал в шаблоне c++ указатель на функцию (std::function), а потом использовал вызов (this->*func)(). Всем спасибо за помощь.
Рабочий вариант:
std::map<Trigger*, void(TriggerActionManager::*)()> triggerAction;
...
triggerAction.emplace(new Trigger, &TriggerActionManager::a0);
...
for (auto &triggerFunc : triggerAction) {
if (triggerFunc.first->getCollision()) (this->*triggerFunc.second)();
}