- Managing object lifetime with lambdas in C
- #include<functional>
- std::function<int()> Count() {
- int x = 0;
- return [=]() mutable { return x++; };
- }
- std::function<int()> Negate(std::function<int()> x) {
- return [=]() { return -x(); };
- }
- int main() {
- std::function<int()> n;
- int z = 0;
- if (true) {
- auto c = Count();
- z = c();
- n = Negate(c);
- z = n();
- z = n();
- }
- z = n();
- z = n();
- }