1 #ifndef mock_types_1103988513531 2 #define mock_types_1103988513531 3 4 template <typename T> struct Ref { 5 T t; 6 RefRef7 Ref() : t{} {}; RefRef8 Ref(T *) {} getRef9 T *get() { return nullptr; } 10 operator const T &() const { return t; } 11 operator T &() { return t; } 12 }; 13 14 template <typename T> struct RefPtr { 15 T *t; 16 RefPtrRefPtr17 RefPtr() : t(new T) {} RefPtrRefPtr18 RefPtr(T *t) : t(t) {} getRefPtr19 T *get() { return t; } 20 T *operator->() { return t; } 21 T &operator*() { return *t; } 22 RefPtr &operator=(T *) { return *this; } 23 }; 24 25 template <typename T> bool operator==(const RefPtr<T> &, const RefPtr<T> &) { 26 return false; 27 } 28 29 template <typename T> bool operator==(const RefPtr<T> &, T *) { return false; } 30 31 template <typename T> bool operator==(const RefPtr<T> &, T &) { return false; } 32 33 template <typename T> bool operator!=(const RefPtr<T> &, const RefPtr<T> &) { 34 return false; 35 } 36 37 template <typename T> bool operator!=(const RefPtr<T> &, T *) { return false; } 38 39 template <typename T> bool operator!=(const RefPtr<T> &, T &) { return false; } 40 41 struct RefCountable { refRefCountable42 void ref() {} derefRefCountable43 void deref() {} 44 }; 45 downcast(T * t)46template <typename T> T *downcast(T *t) { return t; } 47 48 #endif 49