fork download
  1. #include <iostream>
  2. #include <iterator>
  3. #include <algorithm>
  4.  
  5. struct X
  6. {
  7. X() { std::cout << "X construct @" << (const void*)this << '\n'; }
  8. ~X() { std::cout << "X destruct @" << (const void*)this << '\n'; }
  9. };
  10.  
  11. std::ostream& operator<<(std::ostream& s, const X& x)
  12. {
  13. return s << "op << X @ " << (const void*)&x << '\n';
  14. }
  15.  
  16. int main()
  17. {
  18. std::initializer_list<X> b;
  19.  
  20. {
  21. std::initializer_list<X> a{X()};
  22. b = a;
  23. std::copy( a.begin(), a.end(), std::ostream_iterator<X>(std::cout, "") );
  24. }
  25.  
  26. std::copy( b.begin(), b.end(), std::ostream_iterator<X>(std::cout << '\n', "") );
  27. }
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
X construct @0xbff31126
op << X @ 0xbff31126
X destruct @0xbff31126

op << X @ 0xbff31126