我只想将lambda函数传递给函数进行回调。我正在使用std::function
进行回调。我需要将数据传递给此函数,这是我遇到问题的地方。下面的代码错误说"无法转换为预期类型"。目标是对SDL
的事件使用回调。我不确定这是否是正确的方法。我将回调函数存储在unordered_map
中,密钥为SDL_Event.type
和vector
std::function
。
我在事件轮询中调用dispatch()
,在设置中调用subscribe
。错误发生在[]
lambda
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);
}
答案 0 :(得分:0)
非常愚蠢的错误......参数不匹配。有效的正确代码如下。即我在lambda中没有.wrapper {
display: flex;
justify-content: center;
align-items: center;
height: 300px;
position: relative;
}
.item {
display: none;
position: absolute;
}
.item.active {
display: block;
z-index: 2;
}
#next-button {
z-index: 3;
position: absolute;
bottom: 0;
}
.active_link {
background-color: red;
}
.menu {
display: flex;
width: 300px;
justify-content: space-between;
height: 40px;
}
.menu li {
width: 30px;
}
.submit-it {
display: none;
}
......
const