Add iterator_traits to ImmutableMap and ImmutableSet.
authorRyan Govostes <rzg@apple.com>
Wed, 13 Feb 2013 21:38:22 +0000 (21:38 +0000)
committerRyan Govostes <rzg@apple.com>
Wed, 13 Feb 2013 21:38:22 +0000 (21:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175085 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/ImmutableMap.h
include/llvm/ADT/ImmutableSet.h

index a4232f0da9c09e719248b6e4dec6c49ae21e0ba2..a84ad25beeff425d188869f71deee57a48285da1 100644 (file)
@@ -224,6 +224,11 @@ public:
     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; }
+    
+    typedef ImmutableMap<KeyT,ValT,ValInfo>::value_type value_type;
+    typedef value_type *pointer;
+    typedef value_type &reference;
+    typedef std::bidirectional_iterator_tag iterator_category;
   };
 
   iterator begin() const { return iterator(Root); }
index 21b325e907aa5f2e13ee7929bb98578e159f1ce0..247b5446601bbff9b69822aea3d3a6e2e9f4db35 100644 (file)
@@ -1066,6 +1066,11 @@ public:
     inline bool operator==(const iterator& RHS) const { return RHS.itr == itr; }
     inline bool operator!=(const iterator& RHS) const { return RHS.itr != itr; }
     inline value_type *operator->() const { return &(operator*()); }
+
+    typedef ImmutableSet<ValT,ValInfo>::value_type value_type;
+    typedef value_type *pointer;
+    typedef value_type &reference;
+    typedef std::bidirectional_iterator_tag iterator_category;
   };
 
   iterator begin() const { return iterator(Root); }