Je veux simplement passer une fonction lambda à une fonction pour les rappels. J'utilise std::function
pour les rappels. J'ai besoin de transmettre des données à cette fonction et c'est là que je rencontre des problèmes. Le code ci-dessous les erreurs disant "ne peut pas convertir au type attendu". L'objectif est d'utiliser les rappels pour les événements avec SDL
. Je ne suis pas sûr que ce soit la bonne façon de procéder. Je stocke la fonction de rappel dans un unordered_map
avec la clé étant un SDL_Event.type
et un vector
de std::function
.std :: fonction avec erreur lambda pour les rappels d'événements SDL
J'appelle le dispatch()
dans l'interrogation d'événement et subscribe
dans la configuration. L'erreur se produit dans le []
du subscribe()
lambda
// main.cpp
window->subscribe(SDL_KEYDOWN, [](SDL_Event& ev) -> void {
std::cout << "key pressed" << std::endl;
});
// eventhandler.cpp
void EventHandler::subscribe(int _event, std::function<void(const SDL_Event&)> _callback)
{
m_callbacks[_event].push_back(_callback);
}