Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RXcpp连续从函数流数据 我正在学习C++的反应式,我正在寻找一些指导。我创建了一个函数来等待事件,然后返回它。我希望捕获使用反应式异步发生的所有事件,并在事件发生时进行处理。以下是我目前掌握的情况: 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; } int引擎::初始化() { al_init(); 显示=创建显示(1200800); eventQueue=al_create_event_queue(); 安装鼠标(); 安装键盘(); al_寄存器\事件\源(eventQueue,al_get\ u键盘\事件\源()); al_寄存器\事件\源(eventQueue,al_get\ u鼠标\事件\源()); //测试:等待2个事件发生 自动事件=rxcpp::可观察::创建([](rxcpp::订阅服务器e) { e、 在下一个(WaitForEvent); e、 在下一个(WaitForEvent); e、 在_completed()上; }); 事件。订阅([](快板事件e) { printf(“我们有一个事件:%d\n”,e.type); }, []() { printf(“完成”\n); }); 返回0; } ALLEGRO_事件引擎::WaitForEvent() { 快板活动; 等待事件(事件队列和事件); 返回事件; }_C++_Reactive Programming_Allegro_Rxcpp - Fatal编程技术网

RXcpp连续从函数流数据 我正在学习C++的反应式,我正在寻找一些指导。我创建了一个函数来等待事件,然后返回它。我希望捕获使用反应式异步发生的所有事件,并在事件发生时进行处理。以下是我目前掌握的情况: 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; } int引擎::初始化() { al_init(); 显示=创建显示(1200800); eventQueue=al_create_event_queue(); 安装鼠标(); 安装键盘(); al_寄存器\事件\源(eventQueue,al_get\ u键盘\事件\源()); al_寄存器\事件\源(eventQueue,al_get\ u鼠标\事件\源()); //测试:等待2个事件发生 自动事件=rxcpp::可观察::创建([](rxcpp::订阅服务器e) { e、 在下一个(WaitForEvent); e、 在下一个(WaitForEvent); e、 在_completed()上; }); 事件。订阅([](快板事件e) { printf(“我们有一个事件:%d\n”,e.type); }, []() { printf(“完成”\n); }); 返回0; } ALLEGRO_事件引擎::WaitForEvent() { 快板活动; 等待事件(事件队列和事件); 返回事件; }

RXcpp连续从函数流数据 我正在学习C++的反应式,我正在寻找一些指导。我创建了一个函数来等待事件,然后返回它。我希望捕获使用反应式异步发生的所有事件,并在事件发生时进行处理。以下是我目前掌握的情况: 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; } int引擎::初始化() { al_init(); 显示=创建显示(1200800); eventQueue=al_create_event_queue(); 安装鼠标(); 安装键盘(); al_寄存器\事件\源(eventQueue,al_get\ u键盘\事件\源()); al_寄存器\事件\源(eventQueue,al_get\ u鼠标\事件\源()); //测试:等待2个事件发生 自动事件=rxcpp::可观察::创建([](rxcpp::订阅服务器e) { e、 在下一个(WaitForEvent); e、 在下一个(WaitForEvent); e、 在_completed()上; }); 事件。订阅([](快板事件e) { printf(“我们有一个事件:%d\n”,e.type); }, []() { printf(“完成”\n); }); 返回0; } ALLEGRO_事件引擎::WaitForEvent() { 快板活动; 等待事件(事件队列和事件); 返回事件; },c++,reactive-programming,allegro,rxcpp,C++,Reactive Programming,Allegro,Rxcpp,我似乎得到了错误:没有函数模板“rxcpp::observable::create”的实例与参数列表匹配。我是否需要制作自己的模板或其他东西来观察ALLEGRO_事件?从中,看起来create为返回类型使用了显式模板参数,因此您需要提供它。您的侦听器没有返回任何内容,因此void可以工作 auto events = rxcpp::observable<>::create<void>(... auto events=rxcpp::observable::create(。。

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

从中,看起来
create
为返回类型使用了显式模板参数,因此您需要提供它。您的侦听器没有返回任何内容,因此
void
可以工作

auto events = rxcpp::observable<>::create<void>(...
auto events=rxcpp::observable::create(。。。
从中,看起来
create
为返回类型使用了显式模板参数,因此您需要提供它。您的侦听器没有返回任何内容,因此
void
可以工作

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

@蒂姆的想法是对的

我正在发布我们网站的答案

create()。
另外,
WaitForEvent
是一个函数,但是
on_next()
需要
ALLEGRO_事件
,因此确保调用
WaitForEvent()
并将结果传递给
on_next()

auto events=rxcpp::observable::create([this](rxcpp::subscriber e)
{
e、 下一步(此->WaitForEvent());
e、 下一步(此->WaitForEvent());
e、 在_completed()上;
});

@蒂姆的想法是对的

我正在发布我们网站的答案

create()。
另外,
WaitForEvent
是一个函数,但是
on_next()
需要
ALLEGRO_事件
,因此确保调用
WaitForEvent()
并将结果传递给
on_next()

auto events=rxcpp::observable::create([this](rxcpp::subscriber e)
{
e、 下一步(此->WaitForEvent());
e、 下一步(此->WaitForEvent());
e、 在_completed()上;
});

现在我得到了这个错误:没有函数模板“rxcpp::observable::create”的实例匹配参数列表这很奇怪,因为当我粘贴文档中的示例时,它会显示相同的内容。嗯,这很奇怪。这可能是一个错误。不幸的是,我没有使用此库的任何经验。我建议在其上发布。现在我得到了以下错误:没有函数模板“rxcpp::observable::create”的实例匹配参数列表这很奇怪,因为当我粘贴文档中的示例时,它会显示相同的内容。嗯。这很奇怪。这可能是个错误。不幸的是,我没有使用此库的任何经验。我建议在他们的网站上发布。