fork(1) download
  1. #include <iostream>
  2. #include <type_traits>
  3.  
  4. template<typename T>
  5. typename std::enable_if<
  6. std::is_const<typename std::remove_reference<T>::type>::value
  7. >::type
  8. forwarder(T&& x)
  9. {
  10. auto value_cat = std::is_rvalue_reference<decltype(x)>::value ? "r" : "l";
  11. std::cout << value_cat << "value reference to const\n";
  12. }
  13.  
  14. int main()
  15. {
  16. const int x = 42;
  17. forwarder(std::move(x));
  18. forwarder(x);
  19. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
rvalue reference to const
lvalue reference to const