Простое изменение результатов в make: Ошибка 1 - PullRequest
1 голос
/ 11 июня 2010

Имел это:

rtable.insert ( pair<string,string>(destination,nhop) ); // route insertion
return 0;

Изменил это на:

if (rtable.insert ( pair<string,string>(destination,nhop)) == 0){
    return 0;
}

Первый компилируется нормально. Во-вторых, я получаю ошибку make 1. Я могу ходить туда-сюда весь день - я не вижу проблем. Есть идеи?

1 Ответ

3 голосов
/ 11 июня 2010

Эта перегрузка std::map::insert() возвращает std::pair<iterator, bool>.Вы не можете сравнить это с нулем.

Этот элемент bool сообщает вам, был ли добавлен новый элемент;если вы хотите сравнить с этим, вы можете просто использовать:

if (rtable.insert(pair<string,string>(destination,nhop)).second)
    return 0
...