c++ - rxcpp 简单可观察<int>

标签 c++ system.reactive reactive-programming rxcpp

我在 C# 中使用 RX 进行编程,现在我希望在 C++ 中使用 rxcpp 进行编程。 我正在尝试做最简单的事情,定义 observable<int> 的类成员变量.
问题是 observable定义为:

template<class T, class SourceOperator>
class observable

什么是 SourceOperator ?
我如何定义一个简单的 observable<int>

查看代码时,在 rx-observable.hpp(第 101 行)处:

template<class T, class Source>
observable<T> make_observable_dynamic(Source&& s) {
   return observable<T>(dynamic_observable<T>(std::forward<Source>(s)));
}

我找到了 observale<T>作为返回类型,但找不到它的定义。
太奇怪了。老实说,虽然我非常精通 c++11\14 和元编程……显然兔子洞可以变得更深:-(

更新 1:
observale<T>已经找到:-) 它在 rx-predef.hpp 中:

template<class T = void,
         class SourceObservable = typename std::conditional<std::is_same<T,void>::value,
           void, 
           dynamic_observable<T>>::type>
class observable;

好的。我目前的猜测是 dynamic_observable表示“常规”observable<T>是 T 的动态类型删除流。 这是合乎逻辑的,因为您只能将类型删除流存储为具有显式类型的变量。
是什么让我想到下一个猜测,template<class T, class SourceOperator> class observable 的语法允许创建与 'decorator' pattern 中其他可观察对象相结合的可观察类型(编译时装饰)。像例子一样的东西 here

最佳答案

observale<T>已经找到:-) 它在 rx-predef.hpp 中:

template<class T = void,
         class SourceObservable = typename std::conditional<std::is_same<T,void>::value,
           void, 
           dynamic_observable<T>>::type>
class observable;

dynamic_observable表示 observable<T>这是一个动态的、类型删除的 T 流。 这是合乎逻辑的,因为您只能将类型删除流存储为具有显式类型的变量。
template<class T, class SourceOperator> class observable 的语法允许创建与 'decorator' pattern 中其他可观察对象相结合的可观察类型(编译时装饰)。像例子一样的东西 here

关于c++ - rxcpp 简单可观察<int>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42469906/

相关文章:

java - 如何正确组合streams\Observables

c# - Observable.Retry 记录消息?

reactive-programming - WebFlux (Reactor) 中的文件处理

c# - 你如何用响应式扩展扇出 observables

C++ 泛型变量

c++ - 指针算术和取消引用

c++ - 创建一个 C++ 程序来处理电话线(固定电话)上的来电

android - RxJava : How to find the smaller number in a sequence

java - Spring WebFlux Reactor - 更新 Flux 中的对象

c++ - wglCreateContextAttribsARB 未定义?