On Sun, Jan 17, 2021 at 4:27 AM Drew Gross via Std-Proposals
<std-proposals@lists.isocpp.org> wrote:
>
> Some examples of when you don't want to forward a forwarding reference, might be easy to create bugs if it forwarded automatically:
>
> 1) A generic logging wrapper function
> ```
> auto LoggedCall(auto >&& f, auto >&& v) {
> LogValue(v);
> return f(v); // Oops, v was moved from! (Maybe, depending on signature of LogValue)
> }
> ```
Why would a logging function move from its parameter? It should take
it as a `const&`.
I could totally imagine a logging function with the signature
void LogValue(std::string msg);
Your proposal would break that. That's bad.
–Arthur