fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. class Foo {
  5. public:
  6. Foo(int id) : id(id) { std::cout << "foo " << id << " constructed" << std::endl; }
  7. ~Foo() { std::cout << "foo " << id << " destructed" << std::endl; }
  8.  
  9. int id;
  10. };
  11.  
  12. int main() {
  13. std::vector<Foo> foos;
  14.  
  15. for (int i = 0; i < 2; i++) {
  16. foos.emplace_back(i);
  17.  
  18. auto& foo = foos.back();
  19. std::cout << "Play with " << foo.id << std::endl;
  20. }
  21.  
  22. for (auto&& foo : foos) {
  23. std::cout << "I'm foo " << foo.id << std::endl;
  24. }
  25.  
  26. return 0;
  27. }
Success #stdin #stdout 0.01s 5508KB
stdin
Standard input is empty
stdout
foo 0 constructed
Play with 0
foo 1 constructed
foo 0 destructed
Play with 1
I'm foo 0
I'm foo 1
foo 0 destructed
foo 1 destructed