fork(1) download
  1. #include <memory>
  2. #include <iostream>
  3.  
  4. auto counter() {
  5. int i = 0;
  6. return [i = std::make_shared<int>( i ) ] {
  7. return ++(*i);
  8. };
  9. }
  10.  
  11. int main() {
  12. auto f = counter();
  13. auto g = counter();
  14.  
  15. int arr[] = {
  16. f(),
  17. g(),
  18. g(),
  19. f()
  20. };
  21.  
  22. for( auto i : arr ) {
  23. std::cout << i << '\n';
  24. }
  25. }
  26.  
Success #stdin #stdout 0s 3228KB
stdin
Standard input is empty
stdout
1
1
2
2