1
#include "stdafx.h"
#include <functional>
#include <iostream>
#include <string>
std::function<void(int)> Foo()
{
int v = 1;
int r = 2;
auto l = [v, &r](int i)
{
std::cout << v << " " << r << " " << i << std::endl;
};
return l;
}
int main()
{
auto func = Foo();
func(3);
return 0;
}
我想會打印「1 2 3」,但是它是「1 -858993460 3」,爲什麼?從(std :: function)輸出lambda中的引用傳遞值?