These operators were expecting a const T& instead of a const T*, and were not
being picked up and used by gcc in the right places as a result. Apparently no
one used these operators before. A unit test which exposed these problems,
verified the solution, and checks other basic functionality is on the way.
{ return l.get() == r; }
template<class T>
-bool operator==(const T &l, const RefCountingPtr<T> &r)
+bool operator==(const T *l, const RefCountingPtr<T> &r)
{ return l == r.get(); }
template<class T>
{ return l.get() != r; }
template<class T>
-bool operator!=(const T &l, const RefCountingPtr<T> &r)
+bool operator!=(const T *l, const RefCountingPtr<T> &r)
{ return l != r.get(); }
#endif // __BASE_REFCNT_HH__