fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct some_type {};
  5.  
  6. template<typename T>
  7. void doSomething(T&& model)
  8. {
  9. cout << "reference: " << &model << endl;
  10. }
  11.  
  12. void test(some_type input_model, bool do_copy)
  13. {
  14. cout << "original: " << &input_model << endl;
  15. if (do_copy)
  16. doSomething( some_type{input_model} ); // T = some_type&&
  17. else
  18. doSomething( input_model ); // T = some_type&
  19. }
  20.  
  21. int main()
  22. {
  23. test({}, true);
  24. test({}, false);
  25. return 0;
  26. }
Success #stdin #stdout 0.01s 5388KB
stdin
Standard input is empty
stdout
original: 0x7ffe440e3d90
reference: 0x7ffe440e3d67
original: 0x7ffe440e3d90
reference: 0x7ffe440e3d90