Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <functional>
- #include <memory>
- int main()
- {
- auto fib = []() mutable{
- int j=0,k=1;
- std::shared_ptr<int> aa = std::shared_ptr<int>(new int(j));
- std::shared_ptr<int> bb = std::shared_ptr<int>(new int(k));
- int &a = *aa;
- int &b = *bb;
- a = 0;
- b = 1;
- return [=]() mutable {
- int t = b;
- b = a + b;
- a = t;
- return a;
- };
- };
- auto f = fib();
- printf("%d %d %d %d\n",f(),f(),f(),f()); // prints: "3 2 1 1" (Right to left function calling in C/C++)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement