C ++ lambda - 在lambda中捕获后移动对象

时间:2016-06-21 08:28:34

标签: c++ lambda move

我有这段代码:

template<class Value>
inline void item_controller<Value>::middle_touch(item_value_view&)
{
    detail_item_controller<Value> detail;
    detail.value(value_);
    detail.return_function(
                          [&](bool ok)
                          {
                              if(ok)
                              {
                                  if(value() != detail.value())
                                  {
                                      view().edited(true);
                                      value(detail.value());
                                  }
                              }
                          });         

    gui::fsm->next(std::move(detail));
}

问题是在移动对象后,lambda表达式中捕获的detail上的引用是无效的,有没有什么技术可以解决这个问题?

感谢。

0 个答案:

没有答案