你可以使用带有std :: weak_ptr的C++ 11基于范围的for循环,而不是使用带lambda的for_each,如下所示?
std::vector<std::weak_ptr<IObservable>> observers;
std::for_each(this->observers.cbegin(), this->observers.cend(),
[](const std::weak_ptr<IObservable>& _o)
{
    auto observer = _o.lock();
    if (observer)
    {
       observer->Notify()
    }
});
我不明白为什么不.你收到任何错误信息吗?
这个:
for( const auto& o: observers ) {
  if( auto observer = o.lock() ) {
    observer->Notify();
  }
}
应该工作正常......:D
| 归档时间: | 
 | 
| 查看次数: | 146 次 | 
| 最近记录: |