fork download
  1. #include <iostream>
  2. #include <utility>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. class Class
  7. {
  8. public:
  9. int uid;
  10. std::vector<int> x;
  11. Class(const int uid, const std::vector<int> &x): uid(uid), x(x) {}
  12.  
  13. ~Class() { std::cout << "Destructing " << uid << "\n"; }
  14. };
  15.  
  16. int main() {
  17. Class c2(2, {});
  18. {
  19. Class c1(1, {1,2,3,4,5});
  20. std::cout << "(Before move) c1 size: " << c1.x.size() << " c2 size: " << c2.x.size() << "\n";
  21. c2.x = std::move(c1.x);
  22. std::cout << "(After move) c1 size: " << c1.x.size() << " c2 size: " << c2.x.size() << "\n";
  23. }
  24. std::cout << "(After dstor) c2 size: " << c2.x.size() << "\n";
  25. std::cout << c2.x.size() << "\n";
  26. return 0;
  27. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
(Before move) c1 size: 5  c2 size: 0
(After move) c1 size: 0  c2 size: 5
Destructing 1
(After dstor) c2 size: 5
5
Destructing 2