1

我希望制作一个不关心它接收到的可观察类型的扩展函数。

例如:

template <typename T>
inline auto makeones() -> function<observable<int>(observable<T>)>
{
return [=](observable<T> s) {
    return s | rxo::map([=](auto x) { return 1; }) 
};
}

如果可能,我希望能够在不指定模板的情况下调用此方法。

例如:

stream | makeones() 

stream | makeones<myType>()

我想这更像是一个 c++ 问题而不是 rxcpp 问题。这可能吗?

4

1 回答 1

1

您可以使用带有模板方法的结构:

struct makeones {
  template <typename Observable>
  inline observable<int> operator()(Observable s) {
    return s | rxo::map([=](typename Observable::value_type x) { return 1; });
  }
};
于 2017-12-23T12:34:38.600 回答