0
콜백 함수에 람다 함수를 전달하기 만하면됩니다. 콜백에 std::function
을 사용하고 있습니다. 이 함수에 데이터를 전달해야하는데 이것이 문제가되는 부분입니다. "예상 유형으로 변환 할 수 없습니다"라는 오류 아래의 코드. 목표는 SDL
인 이벤트에 콜백을 사용하는 것입니다. 이 일을하는 것이 올바른 길인지 잘 모르겠습니다. 나는 SDL_Event.type
이고 vector
이 std::function
인 unordered_map
에 콜백 함수를 저장하고있다.std :: SDL 이벤트 콜백에 대한 lambda 오류가있는 함수
이벤트 폴링시 dispatch()
을 호출하고 설치시 subscribe
을 호출합니다. 오류가 subscribe()
람다
// 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);
}