fork download
  1. #include <iostream>
  2.  
  3. struct Parameters
  4. {
  5. Parameters &val()
  6. {
  7. return *this;
  8. }
  9. };
  10.  
  11. void f(const Parameters &)
  12. {
  13. std::cout << "const Parameters &\n";
  14. }
  15.  
  16. void f(Parameters &)
  17. {
  18. std::cout << "Parameters &\n";
  19. }
  20.  
  21. template<typename T>
  22. T &i_know_what_i_am_doing(const T &params)
  23. {
  24. return const_cast<T&>(params);
  25. }
  26.  
  27. int main(int argc,char *argv[])
  28. {
  29. f(Parameters());
  30. f(Parameters().val().val());
  31. f(i_know_what_i_am_doing(Parameters()));
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0.02s 2680KB
stdin
Standard input is empty
stdout
const Parameters &
Parameters &
Parameters &