Merge pull request #821 from mazong1123/master

Fixed issue #775. Mark the ConvertibleFromAny constructor as explicit, and fix operator overload issue for Unprintable
This commit is contained in:
Billy Donahue 2016-07-14 13:15:38 -04:00 committed by GitHub
commit ec44c6c167

View File

@ -613,7 +613,7 @@ TEST(MatcherCastTest, FromSameType) {
struct ConvertibleFromAny {
ConvertibleFromAny(int a_value) : value(a_value) {}
template <typename T>
ConvertibleFromAny(const T& /*a_value*/) : value(-1) {
explicit ConvertibleFromAny(const T& /*a_value*/) : value(-1) {
ADD_FAILURE() << "Conversion constructor called";
}
int value;
@ -867,11 +867,15 @@ class Unprintable {
public:
Unprintable() : c_('a') {}
bool operator==(const Unprintable& /* rhs */) { return true; }
private:
char c_;
};
inline bool operator==(const Unprintable& /* lhs */,
const Unprintable& /* rhs */) {
return true;
}
TEST(EqTest, CanDescribeSelf) {
Matcher<Unprintable> m = Eq(Unprintable());
EXPECT_EQ("is equal to 1-byte object <61>", Describe(m));