rxcpp простой наблюдаемый<int>

Я программирую с RX на C#, и теперь я хочу программировать с RXCpp на C++. Я пытаюсь сделать самую простую вещь, определить переменную члена класса 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-priorf.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 включить создание наблюдаемого типа в сочетании с другими наблюдаемыми в шаблоне декоратора (декорация времени компиляции). что-то вроде примера здесь

1 ответ

observale<T> был найден:-) его в rx-priorf.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 включить создание наблюдаемого типа в сочетании с другими наблюдаемыми в шаблоне декоратора (декорация времени компиляции). что-то вроде примера здесь

Другие вопросы по тегам