fork(1) download
  1. #include <iostream>
  2. #include <typeinfo>
  3. #include <map>
  4.  
  5. struct A {
  6. A() {
  7. std::cout << "A was created" << std::endl;
  8. }
  9.  
  10. A(A &&) {
  11. std::cout << "A's move constructor was called" << std::endl;
  12. }
  13.  
  14. A(A const &) {
  15. std::cout << "A's copy constructor was called" << std::endl;
  16. }
  17.  
  18. ~A() {
  19. std::cout << "A was destroyed" << std::endl;
  20. }
  21. };
  22.  
  23. int main() {
  24. std::map<int, A> theMap {{1, A()}, {2, A()}};
  25.  
  26. std::cout << "Starting for loop now" << std::endl;
  27.  
  28. for (auto const & pair : theMap) {
  29. std::cout << "performed an iteration" << std::endl;
  30. }
  31.  
  32. std::cout << "for loop finished" << std::endl;
  33. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
A was created
A's move constructor was called
A was created
A's move constructor was called
A's copy constructor was called
A's copy constructor was called
A was destroyed
A was destroyed
A was destroyed
A was destroyed
Starting for loop now
performed an iteration
performed an iteration
for loop finished
A was destroyed
A was destroyed