On 9/25/20 10:12 AM, 60rntogo wrote:
On Friday, 25 September 2020 at 13:15:27 UTC, Steven Schveighoffer wrote:
ou can use auto ref to alleviate that:

int x()(auto ref Foo f) // needs to be a template for auto ref to work

That's a good point, thanks. Since we are on that topic, how would that differ from the following?

int x(in Foo f)

in does not mean "take by reference", it means "scope const"

And going further, if instead of int I wanted to return something that might also be expensive to copy, what would be the best way to declare the function?

It depends on if you want to return a copy. If you want to return a reference if the source is a reference, use auto ref on the return as well. But if you still want to protect the internal data, it would have to be const.

-Steve

Reply via email to