fork download
  1. #include <iostream>
  2. struct example
  3. {
  4. example()
  5. {
  6. std::cout << "construct\n";
  7. }
  8. ~example()
  9. {
  10. std::cout << "destroy\n";
  11. }
  12. example(const example & )
  13. {
  14. std::cout << "copy\n";
  15. }
  16. example(example && )
  17. {
  18. std::cout << "move\n";
  19. }
  20. example& operator=(const example & )
  21. {
  22. std::cout << "assign\n";
  23. return *this;
  24. }
  25. example& operator=(example && )
  26. {
  27. std::cout << "move assign\n";
  28. return *this;
  29. }
  30. };
  31.  
  32.  
  33. example ReturnSomething1()
  34. {
  35. std::cout << "in 1\n";
  36. example test;
  37. std::cout << "created example\n";
  38. return test;
  39. }
  40. example ReturnSomething2()
  41. {
  42. std::cout << "in 2\n";
  43. return example();
  44. }
  45. int main()
  46. {
  47. std::cout << "1\n";
  48. example x = ReturnSomething1();
  49. std::cout << "2\n";
  50. example y = ReturnSomething2();
  51. std::cout << "exiting\n";
  52.  
  53. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
1
in 1
construct
created example
2
in 2
construct
exiting
destroy
destroy