Имею структуру следующего вида:
struct CVector {
float x;
float y;
};
struct CUnitPos {
CVector coords;
float some_other_field;
};
Имею вектор из CUnitPos. Задача — отсортировать вектор в порядке убывания значение coords.y
Пытаюсь слабать динамический критерий сортировки:
std::sort( vec.begin(), vec.end(),
boost::bind(std::less<float>(),
boost::bind( &CUnitPos::coords::y, _1 ),
boost::bind( &CUnitPos::coords::y, _2 )
)
);
Ессно компилится такое отказывается. С критерием сортировки по some_other_field проблем нет, все компилится и работает. А как быть в случае с вложенной структурой? Как корректно достучать до ее полей? Если для этого придется городить еще один nested boost::bind, то пожалуй овчинка выделки не стоит, лучше уже функцию сравнения написать отдельную IMHO...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>