fork(3) download
  1. #include <iostream>
  2. #include <string>
  3. #include <tuple>
  4.  
  5. struct A
  6. {
  7. A() = default;
  8. A(const A&) { std::cout << "copied" << std::endl; }
  9. A(A&&) { std::cout << "moved" << std::endl; }
  10. };
  11.  
  12. std::pair<A, A> get_pair()
  13. {
  14. std::cout << "in get_pair():" << std::endl;
  15. std::pair<A, A> p;
  16. return p;
  17. }
  18.  
  19. std::tuple<A, A> get_tuple()
  20. {
  21. std::cout << "in get_tuple():" << std::endl;
  22. std::pair<A, A> p;
  23. return p;
  24. }
  25.  
  26. std::tuple<A, A> get_tuple_moved()
  27. {
  28. std::cout << "in get_tuple_moved():" << std::endl;
  29. std::pair<A, A> p;
  30. return std::move(p);
  31. }
  32.  
  33. int main(int, char*[])
  34. {
  35. get_pair();
  36. get_tuple();
  37. get_tuple_moved();
  38. }
  39.  
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
in get_pair():
in get_tuple():
copied
copied
in get_tuple_moved():
moved
moved