multimap и функция сравнения - помогите. Это КОШМАР!
От: agendus  
Дата: 27.05.10 16:12
Оценка:
дОБРЫЙ ДЕНЬ! Я уже лоб себе разбил, а компилятор все не пропускает:

typedef struct {
    int InsId;
    double Price;
} AggrKey;

typedef struct {
    int vol;
    long ReplID;
} RecInfo;

class CCompareBid
{
    bool CompareBid(const AggrKey& key1, const AggrKey& key2)
    {
        if (key1.InsId != key2.InsId)
            return (key1.InsId < key2.InsId);
        else 
        {
            return (key1.Price > key2.Price);
        }        
    }
};

typedef multimap<AggrKey, RecInfo, CCompareBid> BidMap;

// Хочу вставить элемент - на операцию вставки компилятор дает ошибку
// term does not evaluate to a function taking 2 arguments
// и расстилает в окне ошибок портянку, ссылающуюся на код вставки элемента в библиотечном файле xtree
AggrKey aKey;
MakeKey(isin_id, price, aKey);
RecInfo rInfo;
MakeRecInfo(volume, ReplID, rInfo);
std::pair<AggrKey, RecInfo> aPair(aKey, rInfo);
BidMap::value_type vt(aPair);
_BidRates.insert(vt);


Видимо ему не нравится функция сравнения, но что в ней не так?! А если причина не в ней — то я вообще не знаю что делать. Мне нужно определить такой multimap! HE-E-ELP PLease
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.