greater

template<class T>
    struct greater : public binary_function<T, T, bool> {
    bool operator()(const T& x, const T& y) const;
    };

The template class defines its member function as returning x > y. The member function defines a total ordering, even if T is an object pointer type.