RXCPP: создайте расширение, которое не заботится о типе ввода наблюдаемой

Я хочу сделать функцию расширения, которая не заботится о типе наблюдаемого, который она получает.

Например:

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. Возможно ли это сделать?

1

Решение

Вы можете использовать структуру с шаблонным методом:

struct makeones {
template <typename Observable>
inline observable<int> operator()(Observable s) {
return s | rxo::map([=](typename Observable::value_type x) { return 1; });
}
};
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]