ADT: Implement MutableArrayRef::reverse_iterator
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 9 Dec 2013 09:04:00 +0000 (09:04 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 9 Dec 2013 09:04:00 +0000 (09:04 +0000)
This adds rbegin/rend methods to MutableArrayRef, they will be used by a
follow-on commit in clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196768 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/ArrayRef.h

index 61467e9b21c326f94c98032cc2302761838aceb6..e5562c368309836ab9889c0c755ef3f7dc1d8346 100644 (file)
@@ -185,6 +185,8 @@ namespace llvm {
   public:
     typedef T *iterator;
 
+    typedef std::reverse_iterator<iterator> reverse_iterator;
+
     /// Construct an empty MutableArrayRef.
     /*implicit*/ MutableArrayRef() : ArrayRef<T>() {}
 
@@ -219,6 +221,9 @@ namespace llvm {
     iterator begin() const { return data(); }
     iterator end() const { return data() + this->size(); }
 
+    reverse_iterator rbegin() const { return reverse_iterator(end()); }
+    reverse_iterator rend() const { return reverse_iterator(begin()); }
+
     /// front - Get the first element.
     T &front() const {
       assert(!this->empty());