#include <iostream>
#include <vector>
 
struct My {
    int x;
    My(void): x(42) { std::cout << "Constructed: " << this << std::endl; }
    My(My const &m): x(m.x) { std::cout << "Copy constructed: " << this << std::endl; }
    ~My(void) { x = 0; std::cout << "Destructed: " << this << std::endl; }
};
 
int main(void) {
  for(My const &i: {My(), My(), My()}) {
      std::cout << i.x << std::endl;
  }
 
  return 0;
}