Сравнение std::pair<> first и last из equal_range

В контексте карты (шаблона), для следующего использования

auto begin = m_map.find(keyBegin);
auto end = m_map.find(keyEnd);

auto p = equal_range(begin,end,val);

        if( !
        (
            p.first == p.second == m_map.end()
        )
  )
{
  //do something
}

Тип keyBegin а также keyEnd без знака int.

Я получаю следующую ошибку компиляции:

    error: invalid operands to binary expression 

    ('int' and 'iterator' (aka '__map_iterator<__tree_iterator<std::__1::
    __value_type<unsigned int, char>, std::__1::__tree_node<std::__1::__value_type
<unsigned int, char>, 
    void *> *, long> >'))

    p.first == p.second == m_map.end()

Может кто-нибудь указать причину этой ошибки? Я понимаю, что std::pair<>, возвращаемая std::equal_range<>, имеет члены типа ForwardIterator для первого и второго соответственно.

0 ответов

Другие вопросы по тегам