[llvm-commits] [llvm] r41198 - /llvm/trunk/include/llvm/ADT/SmallVector.h
Chris Lattner
sabre at nondot.org
Mon Aug 20 14:22:48 PDT 2007
Author: lattner
Date: Mon Aug 20 16:22:48 2007
New Revision: 41198
URL: http://llvm.org/viewvc/llvm-project?rev=41198&view=rev
Log:
add reverse iterators to smallvector
Modified:
llvm/trunk/include/llvm/ADT/SmallVector.h
Modified: llvm/trunk/include/llvm/ADT/SmallVector.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/SmallVector.h?rev=41198&r1=41197&r2=41198&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/SmallVector.h (original)
+++ llvm/trunk/include/llvm/ADT/SmallVector.h Mon Aug 20 16:22:48 2007
@@ -14,8 +14,8 @@
#ifndef LLVM_ADT_SMALLVECTOR_H
#define LLVM_ADT_SMALLVECTOR_H
+#include "llvm/ADT/iterator"
#include <algorithm>
-#include <iterator>
#include <memory>
#ifdef _MSC_VER
@@ -90,18 +90,29 @@
typedef size_t size_type;
typedef T* iterator;
typedef const T* const_iterator;
+
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+
typedef T& reference;
typedef const T& const_reference;
bool empty() const { return Begin == End; }
size_type size() const { return End-Begin; }
-
+
+ // forward iterator creation methods.
iterator begin() { return Begin; }
const_iterator begin() const { return Begin; }
-
iterator end() { return End; }
const_iterator end() const { return End; }
+ // reverse iterator creation methods.
+ reverse_iterator rbegin() { return reverse_iterator(end()); }
+ const_reverse_iterator rbegin() const{ return const_reverse_iterator(end()); }
+ reverse_iterator rend() { return reverse_iterator(begin()); }
+ const_reverse_iterator rend() const { return const_reverse_iterator(begin());}
+
+
reference operator[](unsigned idx) {
return Begin[idx];
}
More information about the llvm-commits
mailing list