у меня есть структура
struct employee
{
int id;
std::string name;
employee(int id,const std::string& name):id(id),name(name){}
bool operator<(const employee& e)const{return id<e.id;}
getId(){return id;}
getName(){return name;}
};
Если я сделаю такой мультииндекс из учебника, все будет работать хорошо.
typedef multi_index_container<
employee,
indexed_by<
// sort by employee::operator<
ordered_unique<identity<employee> >,
// sort by less<string> on name
ordered_non_unique<member<employee,std::string,&employee::name> >
>
> employee_set;
Но если я сделаю членов структуры сотрудников закрытыми, я потеряю возможность использовать их в качестве ключей для контейнера. Я попытался поместить указатели на функции получения, подобные этой &emploeyy::getName
, но это не решило проблему.
Итак, мой вопрос: как использовать частные члены в качестве ключей для мультииндексного контейнера?
employee
чему-то еще, что могло бы его использовать? - person lakeweb   schedule 16.02.2018