fork download
  1. #include <iostream>
  2.  
  3. struct Foo {
  4. Foo() {
  5. std::cout << "constructor" << std::endl;
  6. }
  7. Foo(Foo && x) {
  8. std::cout << "move" << std::endl;
  9. }
  10. Foo(Foo const & x) {
  11. std::cout << "copy" << std::endl;
  12. }
  13. ~Foo() {
  14. std::cout << "destructor" << std::endl;
  15. }
  16. };
  17.  
  18. Foo f(bool b) {
  19. Foo x;
  20. Foo y;
  21. if (b) { return x; }
  22. return y;
  23. }
  24.  
  25. int main() {
  26. Foo x(f(true));
  27. std::cout << "fin" << std::endl;
  28. }
Success #stdin #stdout 0s 3344KB
stdin
Standard input is empty
stdout
constructor
constructor
move
destructor
destructor
fin
destructor