Здравствуйте, Ulin, Вы писали:
Во-первых, для сортировки по убыванию лучше подходит std::greater
Во-вторых, вот вариант с лямдой:
struct CVector {
float x;
float y;
};
struct CUnitPos {
CVector coords;
float some_other_field;
};
int main()
{
vector<CUnitPos> arr;
namespace bl = boost::lambda;
sort(
arr.begin(), arr.end(),
bl::bind(&CVector::y, bl::bind(&CUnitPos::coords, bl::_1)) >
bl::bind(&CVector::y, bl::bind(&CUnitPos::coords, bl::_2))
);
return 0;
}
Если доработать напильником, то можно будет наверное и на boost::bind перевести...