#include <iostream>
class A {
private:
int m_int;
public:
void foo() {
int a = 1;
int b = 2;
int c = 3;
float f = 3.14f;
std::string s("Something");
const auto f1 = [=] () {
// use only a, b, c
int d = a + b + c;
const auto f2 = [=] () {
// use f, s and also d
std::cout << f << s << d ;
};
f2();
};
f1();
}
};
int main() {
A a;
a.foo();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQSB7CnByaXZhdGU6CiAgICBpbnQgbV9pbnQ7CnB1YmxpYzoKICAgIHZvaWQgZm9vKCkgewogICAgICAgIGludCBhID0gMTsKICAgICAgICBpbnQgYiA9IDI7CiAgICAgICAgaW50IGMgPSAzOwogICAgICAgIGZsb2F0IGYgPSAzLjE0ZjsKICAgICAgICBzdGQ6OnN0cmluZyBzKCJTb21ldGhpbmciKTsKCiAgICAgICAgY29uc3QgYXV0byBmMSA9IFs9XSAoKSB7CiAgICAgICAgICAgIC8vIHVzZSBvbmx5IGEsIGIsIGMKICAgICAgICAgICAgaW50IGQgPSBhICsgYiArIGM7CgogICAgICAgICAgICBjb25zdCBhdXRvIGYyID0gWz1dICgpIHsKICAgICAgICAgICAgICAgIC8vIHVzZSBmLCBzIGFuZCBhbHNvIGQKICAgICAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBmIDw8IHMgPDwgZCA7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGYyKCk7CiAgICAgICAgfTsKCiAgICAgICAgZjEoKTsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgQSBhOwogICAgYS5mb28oKTsKICAgIHJldHVybiAwOwp9