| Index: testing/gmock-support.h
|
| diff --git a/testing/gmock-support.h b/testing/gmock-support.h
|
| index 012775b5cbffbf6b33de4fb3bb67c6ae04583ef3..d00468e083ccfbe0e78e76ce87518129d24bfb2c 100644
|
| --- a/testing/gmock-support.h
|
| +++ b/testing/gmock-support.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include <cmath>
|
| #include <cstring>
|
| +#include <string>
|
|
|
| #include "testing/gmock/include/gmock/gmock.h"
|
|
|
| @@ -34,25 +35,6 @@ class Capture {
|
|
|
| namespace internal {
|
|
|
| -struct AnyBitEq {
|
| - template <typename A, typename B>
|
| - bool operator()(A const& a, B const& b) const {
|
| - if (sizeof(A) != sizeof(B)) return false;
|
| - return std::memcmp(&a, &b, sizeof(A)) == 0;
|
| - }
|
| -};
|
| -
|
| -
|
| -template <typename Rhs>
|
| -class BitEqMatcher : public ComparisonBase<BitEqMatcher<Rhs>, Rhs, AnyBitEq> {
|
| - public:
|
| - explicit BitEqMatcher(Rhs const& rhs)
|
| - : ComparisonBase<BitEqMatcher<Rhs>, Rhs, AnyBitEq>(rhs) {}
|
| - static const char* Desc() { return "is bitwise equal to"; }
|
| - static const char* NegatedDesc() { return "isn't bitwise equal to"; }
|
| -};
|
| -
|
| -
|
| template <typename T>
|
| class CaptureEqMatcher : public MatcherInterface<T> {
|
| public:
|
| @@ -83,10 +65,11 @@ class CaptureEqMatcher : public MatcherInterface<T> {
|
|
|
|
|
| // Creates a polymorphic matcher that matches anything whose bit representation
|
| -// is equal to that of x.
|
| -template <typename T>
|
| -inline internal::BitEqMatcher<T> BitEq(T const& x) {
|
| - return internal::BitEqMatcher<T>(x);
|
| +// is equal to that of {x}.
|
| +MATCHER_P(BitEq, x, std::string(negation ? "isn't" : "is") +
|
| + " bitwise equal to " + PrintToString(x)) {
|
| + static_assert(sizeof(x) == sizeof(arg), "Size mismatch");
|
| + return std::memcmp(&arg, &x, sizeof(x)) == 0;
|
| }
|
|
|
|
|
|
|