forked from boostorg/iterator
Fixed comparison bugs; more remain.
[SVN r11581]
This commit is contained in:
@ -289,7 +289,7 @@ inline bool operator<(const iterator_comparisons<D1,Base1>& xb,
|
|||||||
{
|
{
|
||||||
const D1& x = static_cast<const D1&>(xb);
|
const D1& x = static_cast<const D1&>(xb);
|
||||||
const D2& y = static_cast<const D2&>(yb);
|
const D2& y = static_cast<const D2&>(yb);
|
||||||
return x.policies().distance(x, y) > 0;
|
return x.policies().distance(y, x) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class D1, class D2, class Base1, class Base2>
|
template <class D1, class D2, class Base1, class Base2>
|
||||||
@ -307,7 +307,7 @@ inline bool operator>=(const iterator_comparisons<D1,Base1>& xb,
|
|||||||
{
|
{
|
||||||
const D1& x = static_cast<const D1&>(xb);
|
const D1& x = static_cast<const D1&>(xb);
|
||||||
const D2& y = static_cast<const D2&>(yb);
|
const D2& y = static_cast<const D2&>(yb);
|
||||||
return !(x.policies().distance(x, y) > 0);
|
return x.policies().distance(y, x) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class D1, class D2, class Base1, class Base2>
|
template <class D1, class D2, class Base1, class Base2>
|
||||||
@ -316,7 +316,7 @@ inline bool operator<=(const iterator_comparisons<D1,Base1>& xb,
|
|||||||
{
|
{
|
||||||
const D1& x = static_cast<const D1&>(xb);
|
const D1& x = static_cast<const D1&>(xb);
|
||||||
const D2& y = static_cast<const D2&>(yb);
|
const D2& y = static_cast<const D2&>(yb);
|
||||||
return !(x.policies().distance(y, x) > 0);
|
return x.policies().distance(y, x) <= 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -943,7 +943,7 @@ operator<(
|
|||||||
const iterator_adaptor<Iterator1,Policies,Value1,Reference1,Pointer1,Category,Distance>& x,
|
const iterator_adaptor<Iterator1,Policies,Value1,Reference1,Pointer1,Category,Distance>& x,
|
||||||
const iterator_adaptor<Iterator2,Policies,Value2,Reference2,Pointer2,Category,Distance>& y)
|
const iterator_adaptor<Iterator2,Policies,Value2,Reference2,Pointer2,Category,Distance>& y)
|
||||||
{
|
{
|
||||||
return x.policies().distance(x, y) > 0;
|
return x.policies().distance(y, x) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Iterator1, class Iterator2, class Policies, class Value1, class Value2,
|
template <class Iterator1, class Iterator2, class Policies, class Value1, class Value2,
|
||||||
@ -965,7 +965,7 @@ operator>=(
|
|||||||
const iterator_adaptor<Iterator1,Policies,Value1,Reference1,Pointer1,Category,Distance>& x,
|
const iterator_adaptor<Iterator1,Policies,Value1,Reference1,Pointer1,Category,Distance>& x,
|
||||||
const iterator_adaptor<Iterator2,Policies,Value2,Reference2,Pointer2,Category,Distance>& y)
|
const iterator_adaptor<Iterator2,Policies,Value2,Reference2,Pointer2,Category,Distance>& y)
|
||||||
{
|
{
|
||||||
return !(x.policies().distance(x, y) > 0);
|
return x.policies().distance(y, x) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Iterator1, class Iterator2, class Policies, class Value1, class Value2,
|
template <class Iterator1, class Iterator2, class Policies, class Value1, class Value2,
|
||||||
@ -976,7 +976,7 @@ operator<=(
|
|||||||
const iterator_adaptor<Iterator1,Policies,Value1,Reference1,Pointer1,Category,Distance>& x,
|
const iterator_adaptor<Iterator1,Policies,Value1,Reference1,Pointer1,Category,Distance>& x,
|
||||||
const iterator_adaptor<Iterator2,Policies,Value2,Reference2,Pointer2,Category,Distance>& y)
|
const iterator_adaptor<Iterator2,Policies,Value2,Reference2,Pointer2,Category,Distance>& y)
|
||||||
{
|
{
|
||||||
return !(x.policies().distance(y, x) > 0);
|
return x.policies().distance(y, x) <= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Iterator1, class Iterator2, class Policies, class Value1, class Value2,
|
template <class Iterator1, class Iterator2, class Policies, class Value1, class Value2,
|
||||||
|
Reference in New Issue
Block a user