summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-05-27 19:13:11 +0000
committerAlan Conway <aconway@apache.org>2008-05-27 19:13:11 +0000
commite538c0687cc5d3ceba8b4f4dd33891fc4d10c459 (patch)
treed5e744203b8063257927fbdad31b71e21d67d504 /qpid/cpp/src
parentff52ca9a3bd4d672216b77892bdf4fa949c642a3 (diff)
downloadqpid-python-e538c0687cc5d3ceba8b4f4dd33891fc4d10c459.tar.gz
Fixed error in RangeSet, caused compile failure on Solaris.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@660647 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/RangeSet.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/RangeSet.h b/qpid/cpp/src/qpid/RangeSet.h
index a8849cf9b8..af3b2223cd 100644
--- a/qpid/cpp/src/qpid/RangeSet.h
+++ b/qpid/cpp/src/qpid/RangeSet.h
@@ -63,6 +63,7 @@ class Range {
bool operator==(const Range& x) { return begin_ == x.begin_ && end_== x.end_; }
bool operator<(const T& t) const { return end_ < t; }
+ bool operator<(const Range<T>& r) const { return end_ < r.begin_; }
/** touching ranges can be merged into a single range. */
bool touching(const Range& r) const {
@@ -204,21 +205,21 @@ std::ostream& operator<<(std::ostream& o, const RangeSet<T>& rs) {
template <class T>
bool RangeSet<T>::contains(const T& t) const {
typename Ranges::const_iterator i =
- std::lower_bound(ranges.begin(), ranges.end(), t);
+ std::lower_bound(ranges.begin(), ranges.end(), Range<T>(t));
return i != ranges.end() && i->contains(t);
}
template <class T>
bool RangeSet<T>::contains(const Range<T>& r) const {
typename Ranges::const_iterator i =
- std::lower_bound(ranges.begin(), ranges.end(), r.begin());
+ std::lower_bound(ranges.begin(), ranges.end(), r);
return i != ranges.end() && i->contains(r);
}
template <class T> void RangeSet<T>::addRange(const Range<T>& r) {
if (r.empty()) return;
typename Ranges::iterator i =
- std::lower_bound(ranges.begin(), ranges.end(), r.begin());
+ std::lower_bound(ranges.begin(), ranges.end(), r);
if (i == ranges.end() || !i->touching(r))
ranges.insert(i, r);
else {
@@ -241,7 +242,7 @@ template <class T> void RangeSet<T>::addSet(const RangeSet<T>& s) {
template <class T> void RangeSet<T>::removeRange(const Range<T>& r) {
if (r.empty()) return;
typename Ranges::iterator i,j;
- i = std::lower_bound(ranges.begin(), ranges.end(), r.begin());
+ i = std::lower_bound(ranges.begin(), ranges.end(), r);
if (i == ranges.end() || i->begin() >= r.end())
return; // Outside of set
if (*i == r) // Erase i
@@ -304,7 +305,7 @@ template <class T> bool RangeSet<T>::iterator::equal(const iterator& i) const {
template <class T> Range<T> RangeSet<T>::rangeContaining(const T& t) const {
typename Ranges::const_iterator i =
- std::lower_bound(ranges.begin(), ranges.end(), t);
+ std::lower_bound(ranges.begin(), ranges.end(), Range<T>(t));
return (i != ranges.end() && i->contains(t)) ? *i : Range<T>(t,t);
}