f2( and, forward<PairLike>(pairlike).second, in, another, call ); // forward .second
}
##### Enforcement
* Flag a function that takes a `TP&&` parameter (where `TP` is a template type parameter name) and does anything with it other than `std::forward`ing it exactly once on every static path.
* Flag a function that takes a `TP&&` parameter (where `TP` is a template type parameter name) and does anything with it other than `std::forward`ing it exactly once on every static path, or `std::forward`ing it more than once but qualified with a different data member exactly once on every static path.
### <aname="Rf-out"></a>F.20: For "out" output values, prefer return values to output parameters
@ -4132,7 +4144,7 @@ This is under active discussion in standardization, and might be addressed in a
##### Enforcement
* Flag any lambda capture-list that specifies a capture-default and also captures `this` (whether explicitly or via default capture)
* Flag any lambda capture-list that specifies a capture-default (e.g., `=` or `&`) and also captures `this` (whether explicitly such as `[&, this]`or via default capture such as `[=]` and a use of `this` in the body)
### <aname="F-varargs"></a>F.55: Don't use `va_arg` arguments