Googletest export

Fix std::move to std::forward where appropriate to support reference types.

PiperOrigin-RevId: 292923058
This commit is contained in:
Abseil Team
2020-02-03 11:16:38 -05:00
committed by Andy Getz
parent 74b44b2d0f
commit 4f6609129a
4 changed files with 68 additions and 34 deletions

View File

@@ -470,10 +470,12 @@ class MatcherBaseImpl<Derived<Ts...>> {
// conversions.
template <typename E = std::enable_if<sizeof...(Ts) == 1>,
typename E::type* = nullptr>
explicit MatcherBaseImpl(Ts... params) : params_(std::move(params)...) {}
explicit MatcherBaseImpl(Ts... params)
: params_(std::forward<Ts>(params)...) {}
template <typename E = std::enable_if<sizeof...(Ts) != 1>,
typename = typename E::type>
MatcherBaseImpl(Ts... params) : params_(std::move(params)...) {} // NOLINT
MatcherBaseImpl(Ts... params) // NOLINT
: params_(std::forward<Ts>(params)...) {}
template <typename F>
operator ::testing::Matcher<F>() const { // NOLINT(runtime/explicit)