Implement operator-> for ImmutableMap iterators.

llvm-svn: 50603
This commit is contained in:
Ted Kremenek 2008-05-03 01:05:46 +00:00
parent cdf22f2953
commit 9f620f7d92
1 changed files with 12 additions and 9 deletions

View File

@ -176,16 +176,19 @@ public:
friend class ImmutableMap;
public:
inline value_type_ref operator*() const { return itr->getValue(); }
inline key_type_ref getKey() const { return itr->getValue().first; }
inline data_type_ref getData() const { return itr->getValue().second; }
value_type_ref operator*() const { return itr->getValue(); }
value_type* operator->() const { return &itr->getValue(); }
inline iterator& operator++() { ++itr; return *this; }
inline iterator operator++(int) { iterator tmp(*this); ++itr; return tmp; }
inline iterator& operator--() { --itr; return *this; }
inline iterator operator--(int) { iterator tmp(*this); --itr; return tmp; }
inline bool operator==(const iterator& RHS) const { return RHS.itr == itr; }
inline bool operator!=(const iterator& RHS) const { return RHS.itr != itr; }
key_type_ref getKey() const { return itr->getValue().first; }
data_type_ref getData() const { return itr->getValue().second; }
iterator& operator++() { ++itr; return *this; }
iterator operator++(int) { iterator tmp(*this); ++itr; return tmp; }
iterator& operator--() { --itr; return *this; }
iterator operator--(int) { iterator tmp(*this); --itr; return tmp; }
bool operator==(const iterator& RHS) const { return RHS.itr == itr; }
bool operator!=(const iterator& RHS) const { return RHS.itr != itr; }
};
iterator begin() const { return iterator(Root); }