gpt4 book ai didi

c++ - RXcpp 连续从函数流式传输数据

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:07 24 4
gpt4 key购买 nike

我正在学习 C++ 的响应式(Reactive),我正在寻找一些指导。我创建了一个函数来等待事件然后返回它。我想捕获响应式(Reactive)异步发生的所有事件并在它们出现时进行处理。这是我到目前为止所拥有的:

int Engine::Initialize()
{
al_init();

display = al_create_display(1200, 800);

eventQueue = al_create_event_queue();

al_install_mouse();
al_install_keyboard();

al_register_event_source(eventQueue, al_get_keyboard_event_source());
al_register_event_source(eventQueue, al_get_mouse_event_source());

//test: wait for 2 events to happen
auto events = rxcpp::observable<>::create([](rxcpp::subscriber<ALLEGRO_EVENT> e)
{
e.on_next(WaitForEvent);
e.on_next(WaitForEvent);
e.on_completed();
});

events.subscribe([](ALLEGRO_EVENT e)
{
printf("We have an Event: %d \n", e.type);
},

[]()
{
printf("Done\n");
});

return 0;
}

ALLEGRO_EVENT Engine::WaitForEvent()
{
ALLEGRO_EVENT event;

al_wait_for_event(eventQueue, &event);

return event;
}

我似乎得到了错误:没有函数模板“rxcpp::observable::create”的实例匹配参数列表。我是否需要制作自己的模板或其他东西才能观察 ALLEGRO_EVENT?

最佳答案

来自 the docs ,看起来 create 为返回类型使用了显式模板参数,因此您需要提供它。你的监听器没有返回任何东西,所以 void 可以工作。

auto events = rxcpp::observable<>::create<void>(...

关于c++ - RXcpp 连续从函数流式传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com