具有转发功能的模板与回调功能

时间:2017-09-22 18:05:48

标签: c++

我遇到了一个博客,他用现代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);
}

谢谢

0 个答案:

没有答案