Кажется я понял вопрос.
*map<class A,class B>::iterator - это pair<A,B>, есть A:
perator<().
Значит:
static map<class A,class B>::value_compare(const value& a, const value& b)
{
return !((a.first<b.first) || (b.first<a.first)) && a.second==b.second;
}