GenericMemberIterator: allow mixed-constness comparisons and differences
This commit is contained in:
parent
618fe2f4fc
commit
26c24d0bd9
@ -118,9 +118,9 @@ public:
|
||||
//! Iterator type itself
|
||||
typedef GenericMemberIterator Iterator;
|
||||
//! Constant iterator type
|
||||
typedef GenericMemberIterator<true,Encoding,Allocator> ConstType;
|
||||
typedef GenericMemberIterator<true,Encoding,Allocator> ConstIterator;
|
||||
//! Non-constant iterator type
|
||||
typedef GenericMemberIterator<false,Encoding,Allocator> NonConstType;
|
||||
typedef GenericMemberIterator<false,Encoding,Allocator> NonConstIterator;
|
||||
|
||||
//! Pointer to (const) GenericMember
|
||||
typedef typename BaseType::pointer Pointer;
|
||||
@ -151,7 +151,7 @@ public:
|
||||
constructor effectively defines a regular copy-constructor.
|
||||
Otherwise, the copy constructor is implicitly defined.
|
||||
*/
|
||||
GenericMemberIterator(const NonConstType & it) : ptr_( it.ptr_ ) {}
|
||||
GenericMemberIterator(const NonConstIterator & it) : ptr_(it.ptr_) {}
|
||||
|
||||
//! @name stepping
|
||||
//@{
|
||||
@ -172,12 +172,12 @@ public:
|
||||
|
||||
//! @name relations
|
||||
//@{
|
||||
bool operator==(Iterator that) const { return ptr_ == that.ptr_; }
|
||||
bool operator!=(Iterator that) const { return ptr_ != that.ptr_; }
|
||||
bool operator<=(Iterator that) const { return ptr_ <= that.ptr_; }
|
||||
bool operator>=(Iterator that) const { return ptr_ >= that.ptr_; }
|
||||
bool operator< (Iterator that) const { return ptr_ < that.ptr_; }
|
||||
bool operator> (Iterator that) const { return ptr_ > that.ptr_; }
|
||||
bool operator==(ConstIterator that) const { return ptr_ == that.ptr_; }
|
||||
bool operator!=(ConstIterator that) const { return ptr_ != that.ptr_; }
|
||||
bool operator<=(ConstIterator that) const { return ptr_ <= that.ptr_; }
|
||||
bool operator>=(ConstIterator that) const { return ptr_ >= that.ptr_; }
|
||||
bool operator< (ConstIterator that) const { return ptr_ < that.ptr_; }
|
||||
bool operator> (ConstIterator that) const { return ptr_ > that.ptr_; }
|
||||
//@}
|
||||
|
||||
//! @name dereference
|
||||
@ -188,7 +188,7 @@ public:
|
||||
//@}
|
||||
|
||||
//! Distance
|
||||
DifferenceType operator-(Iterator that) const { return ptr_-that.ptr_; }
|
||||
DifferenceType operator-(ConstIterator that) const { return ptr_-that.ptr_; }
|
||||
|
||||
private:
|
||||
//! Internal constructor from plain pointer
|
||||
|
Loading…
x
Reference in New Issue
Block a user