5 class Subject::_SubjectImpl{
8 std::vector<Observer*> _observers;
10 _SubjectImpl(
Subject *
const ptr);
13 std::vector<Observer *> getObservers()
const;
21 std::vector<Observer *> Subject::getObservers()
const 23 return _pimpl->getObservers();
26 Subject::Subject(QObject *parent) : QObject(parent),
27 _pimpl{std::make_unique<Subject::_SubjectImpl>(
this)}
32 void Subject::addObserver(
Observer *obs)
34 _pimpl->addObserver(obs);
37 void Subject::removeObserver(
Observer *obs)
39 _pimpl->removeObserver(obs);
43 std::vector<Observer *> Subject::_SubjectImpl::getObservers()
const 48 Subject::_SubjectImpl::_SubjectImpl(
Subject *
const ptr) : _ptr {ptr}
53 void Subject::_SubjectImpl::addObserver(
Observer *obs)
58 _observers.push_back(obs);
61 void Subject::_SubjectImpl::removeObserver(
Observer *obs)
66 _observers.erase(std::remove_if(_observers.begin(), _observers.end(), [&](
Observer* ob){