我在 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/