fork download
  1. #include <algorithm>
  2. #include <iostream>
  3.  
  4. struct A
  5. {
  6. A(){std::cout << "C";}
  7. ~A(){std::cout << "D";}
  8. };
  9.  
  10. A const& hi(A const& a)
  11. {
  12. return a;
  13. }
  14.  
  15. int main()
  16. {
  17. {
  18. A const& i = hi(A());
  19. std::cout << " hi ";
  20. }
  21. std::cout << "\n--\n";
  22. {
  23. A const& i = std::move(A());
  24. std::cout << " hi ";
  25. }
  26. std::cout << "\n--\n";
  27. {
  28. A const& i = static_cast<A const&>(A());
  29. std::cout << " hi ";
  30. }
  31. std::cout << "\n--\n";
  32. {
  33. A const& i = static_cast<A&&>(A());
  34. std::cout << " hi ";
  35. }
  36. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
CD hi 
--
CD hi 
--
C hi D
--
C hi D