On Sun, Dec 17, 2006 at 07:09:33PM +0300, Alexey Tourbin wrote: > On Sun, Dec 17, 2006 at 05:14:14PM +0300, Alexey Tourbin wrote: > > On Sun, Dec 17, 2006 at 04:43:40PM +0300, Alexey Tourbin wrote: > > > +static inline bool > > > +vercmpOrder(const pkgCache::VerIterator &a, const pkgCache::VerIterator &b) > > > +{ > > > + return a.CompareVer(b) < 0; > > > +} > > > > Кстати вот тут должно быть "<" или "<="? > > Что-то у Страуса примера на сортировку с предикатом порядка нету. > > Ага, тут похоже должно быть "<=". Дело в том, что всего одной операции > "<=" достаточно, чтобы логически вывести все остальные операции сравнения. > > (==)(a,b) := (a<=b)&&(b<=a) > (>=)(a,b) := !(b<=a) Тут у меня логическая ошибка, кажется должно быть (>=)(a,b) := !(b<=a)||(b==a) Но не суть. Суть в том что нестрогий порядок позволяет доопределить равенство, а строгий не позволяет. > (!=)(a,b) := !(a==b) > (<)(a,b) := (a<=b)&&(a!=b) > (>)(a,b) := (a>=b)&&(a!=b)