扫描二维码
随时随地手机看文章
int n = 100;
auto foo = [n](int a) {
return a > n;
};
cout<< foo(99);
如果编译器要实现foo
,大致类比这种写法(可能真实的实现细节不是这样,但思路类似)∶struct Foo {
Foo(int i) {n=i;}
bool operator()(int a) {
return a > n;
}
private:
int n;
};
...
int n = 100;
Foo foo(n);
cout<< foo(99);
如果是引用捕获了变量,那么struct内有一个指针成员持有被引用捕获的变量的地址。比如:set<int> ns = {100, 200, 300};
auto foo = [
关注、星标公众号,直达精彩内容来源:明日科技当我们讨论指针时,通常假设它是一种可以用 void* 指针来表示的东西,在x86_64平台下是8个字节大小。例如,下面是来自 维基百科中关于x86_64的文章 的摘录:Push...
关键字: 函数