关键不在于传的是什么,在于你的变量是如何申请内存空间的。
基本上出问题的,都是在栈空间初始化这个变量,然后又通过引用捕获,问题是循环完成后栈空间会回收,传递的引用指向的地址上的内存已经被回收了。这时就变成悬空指针了。
这个绝对是标准的错误用法,我个人强烈不建议使用lambda和传统的写法结合,lambda是在函数式编程中兴起的,往上可以追溯到lisp,在函数式编程中,传递的都是值。按照楼上那位的说法,在CPP中就会变为move和rov。
【 在 Algoquant 的大作中提到: 】
:
: 下面的也能跑。结果还是“对”的。
: 闭包里保存引用和指针得万分小心
:
: #include <iostream>
#发自zSMTH@CDU.MP
--
FROM 117.23.183.*