дОБРЫЙ ДЕНЬ! Я уже лоб себе разбил, а компилятор все не пропускает:
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