And how would that work? auto ref duplicates the function. If you pass it an lvalue, then it generates a ref version.
Two solutions:- Turn 'auto ref' into 'ref', but simply have the compiler generate a copy for the caller if he wants to pass by value?
- Treat it as though it were a templated parameter. Why does it make any difference here?
