bool operator==(T const & a, U const & b) って、クラス T のメンバに
bool T::operator==(U const & b) があればいらないですよね?