Make SmallPtrSet iterators real iterators
authorDouglas Gregor <dgregor@apple.com>
Wed, 8 Jul 2009 23:53:54 +0000 (23:53 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 8 Jul 2009 23:53:54 +0000 (23:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75073 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/SmallPtrSet.h

index a189de2c2279de206e1b01d88f0099b0ad8d9103..7d00e9a073e78f4bb50f29861715fa225f257ee9 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <cassert>
 #include <cstring>
+#include <iterator>
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/PointerLikeTypeTraits.h"
 
@@ -170,7 +171,14 @@ protected:
 template<typename PtrTy>
 class SmallPtrSetIterator : public SmallPtrSetIteratorImpl {
   typedef PointerLikeTypeTraits<PtrTy> PtrTraits;
+  
 public:
+  typedef PtrTy                     value_type;
+  typedef PtrTy                     reference;
+  typedef PtrTy                     pointer;
+  typedef std::ptrdiff_t            difference_type;
+  typedef std::forward_iterator_tag iterator_category;
+  
   explicit SmallPtrSetIterator(const void *const *BP)
     : SmallPtrSetIteratorImpl(BP) {}