Issue |
142660
|
Summary |
[clang-tidy] false positive on rvalue-reference parameters
|
Labels |
clang-tidy,
false-positive
|
Assignees |
|
Reporter |
yaoxinliu
|
```
auto f1(auto&& v) { // ok, no warning
return v;
}
// Trigger warning: Forwarding reference parameter 'v' is never forwarded inside the function body.
// cppcoreguidelines-missing-std-forward
template<typename T>
auto f2(T&& v) {
return v;
}
```
As per [P0257](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0527r1.html), `v` in `f2` shall be moved into the return value, so it is ok.
Moreover, `T&&` is a universal reference here; so, `v` is not sure to be an rvalue-reference, it may also be an lvalue-reference, in such a case, `v` should not be explicitly forwarded or moved.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs