fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. class MyClass {
  7. public:
  8. MyClass() {
  9. cout << "constructor" << endl;
  10. }
  11.  
  12. MyClass(MyClass&& c) {
  13. cout << "move constructor" << endl;
  14. data = 0;
  15. }
  16.  
  17. int data;
  18. };
  19.  
  20.  
  21. MyClass foo() {
  22. MyClass c;
  23. c.data = 99999;
  24. return c;
  25. }
  26.  
  27. MyClass foo1(MyClass c) {
  28. c.data = 50;
  29. return c;
  30. }
  31.  
  32. int main(int argc, char *argv[])
  33. {
  34. MyClass cl1 = foo(); //почему тут не вызывается move конструктор?
  35. MyClass cl2 = foo1(MyClass());
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
constructor
constructor
move constructor