我遇到了一个博客,他用现代C ++描述了Observer模式。
基本上订阅方法是
template <typename Observer>
void registerObserver(Observer&& observer)
{
observers_.push_back(std::forward<Observer>(observer));
}
std::vector<std::function<void()>> observers_;
但我想知道他为什么不只是接受一个std :: function作为参数:
void registerObserver(std::function<void()> observer)
{
observers_.push_back(observer);
}
谢谢