Я не могу понять эту строку - разыменование адреса частной переменной-члена или что?
Я задал вопрос некоторое время назадо доступе к базовому контейнеру адаптеров STL, Я получил очень полезный ответ:
template
S& Container(priority_queue& q) {
struct HackedQueue : private priority_queue {
static S& Container(priority_queue& q) {
return q.*&HackedQueue::c;
}
};
return HackedQueue::Container(q);
}
int main()
{
priority_queue pq;
vector &tasks = Container(pq);
return 0;
}
К сожалению, я не могне понимаю эту строку:
return q.*&HackedQueue::c;
Что делает эта строка? Кроме того, как эта строка может получить доступ к закрытому контейнеру вpriority_queue
что передается в функцию?Container