const key_type& k = val.first;
iterator it = upper_bound(k);
if( it == end() || m_comp(k, it->first) ) { // if k < it->first, no match
const key_type& k = val.first;
iterator it = upper_bound(k);
if( it == end() || m_comp(k, it->first) ) { // if k < it->first, no match