Привет! Досталось тут перенести древний проект с bcppb6 под linux. Сначала решил его собрать, посмотреть что да как. Наткнулся на кучу неработающий кусков, с какими могу разбираюсь. Но в одном месте есть код, который не хочет компиляться и я не пойму что надо сделать с ним:
// h-file
typedef std::pair<int, AnsiString> IntStringPair;
typedef std::pair<int, IntStringPair> EdProgPair;
typedef std::map<int, IntStringPair> EdProgramMap;
EdProgramMap edprogrammap_;
// cpp-file
EdProgramMap::const_iterator citer
class UnaryPredicate {
public:
UnaryPredicate(const EditAchievementRow& ear)
: ear_(ear) {}
bool operator()(const EdProgPair& epp)
{
return epp.second.first == ear_.id_edform_;
}
private:
EditAchievementRow ear_;
};
citer = std::find(
edprogrammap_.begin(),
edprogrammap_.end(),
UnaryPredicate(ear_)
);
if (citer != edprogrammap_.end())
cmbEdProgram->ItemIndex = (*citer).first;
}
Тут вроде должен происходить поиск по map'е, я думаю из-за того, что у контейнера аргумент типов это
std::pair<int, std::pair<int, AnsiString> >
E2285 Could not find a match for '_STL::find<_InputIter,_Tp>(_STL::_Rb_tree_iterator<_STL::pair<const int,
_STL::pair<int,AnsiString> >,_STL::_Nonconst_traits<_STL::pair<const
int,_STL::pair<int,AnsiString> > > >,_STL::_Rb_tree_iterator<_STL::pair<const int,
_STL::pair<int,AnsiString> >,_STL::_Nonconst_traits<_STL::pair<const
int,_STL::pair<int,AnsiString> > > > ,UnaryPredicate)'
Подскажите что где подписать?