RxCpp RAII наблюдаемая подписка

Я использую RxCpp в настройке вида модели. Метод обновления представления подписан на наблюдаемый (через лямбда-захват this). Неопределенный доступ к памяти будет иметь место, если подписка переживет экземпляр представления. Я не хочу, чтобы подписка поддерживала представление. Поэтому мне нужно, чтобы подписка заканчивалась детерминистически на деструкторе представления. Это звучит как случай для RAII.

Это когда-нибудь опасно? Это как-то злоупотребление rx? Я прочитал, чтобы предпочесть take_until в похожих настройках. Почему это может быть лучше, и как это может быть использовано здесь?

Спасибо!

#include "rxcpp/rx.hpp"
class MyView : public View
{
public:
MyView(rxcpp::observable<int> obs) : obs (obs)
{
sub = obs.subscribe ([this] (int i) { update(i); });
}
~MyView()
{
sub.unsubscribe();
}
void update(int i)
{
number = i;
repaint();
}
private:
rxcpp::observable<int> obs;
rxcpp::subscription sub;
int number;
};

2

Решение

Задача ещё не решена.

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

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

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