fork download
  1. #include <iostream>
  2. struct A
  3. {
  4. };
  5.  
  6. void f(A & _a)
  7. {
  8. std::cout << "lvalue called" << std::endl;
  9. }
  10.  
  11. void f(A && _a)
  12. {
  13. std::cout << "rvalue called" << std::endl;
  14. }
  15.  
  16. template <typename T>
  17. class TD;
  18. int main()
  19. {
  20. A&& a = A();
  21.  
  22. //TD<decltype(a)> b; // -> A &&
  23.  
  24. f(static_cast<A&&>(a));
  25. f(a);
  26.  
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
rvalue called
lvalue called