为什么不在C ++ 14中移动捕获使用[&& move_me_into_lambda]语法?

时间:2015-04-17 14:01:47

标签: lambda c++14

我喜欢新的C ++ 14添加赋予lambdas捕获移动唯一参数的能力,但我不是语法的粉丝:
Move capture in lambda

更简单的原因是什么?

auto f = [&&x]{return x->twenty_perc_cooler();};

没用过?

1 个答案:

答案 0 :(得分:3)

N3610实际上解决了这个问题,这是一项关于移动捕获的提案:

  

为什么不用&&?

进行捕捉      

经常会问为什么我们不会支持像

这样的东西      

[&& x] {...}

     

这里的问题是我们没有通过右值引用捕获   正试图搬家。如果我们通过右值参考捕获,那么   移动会发生得太晚,因为它意图在捕获时发生   时间,而不是在通话时间。只要我们捕获那些东西   有一个名字,我们不应该做一个隐藏的举动。