]> granicus.if.org Git - clang/commitdiff
Add rbegin and rend for virtual bases, might come in handy some day.
authorMike Stump <mrs@apple.com>
Fri, 7 Aug 2009 21:44:39 +0000 (21:44 +0000)
committerMike Stump <mrs@apple.com>
Fri, 7 Aug 2009 21:44:39 +0000 (21:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78412 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclCXX.h

index 19c21cba77565d4c1b2d609ac7143552ae24bc56..9d96f80cfa17b612c0b77218f34f031e109dd99c 100644 (file)
@@ -390,6 +390,16 @@ public:
   /// classes of a class.
   typedef const CXXBaseSpecifier* base_class_const_iterator;
 
+  /// reverse_base_class_iterator = Iterator that traverses the base classes
+  /// of a class in reverse order.
+  typedef std::reverse_iterator<base_class_iterator>
+    reverse_base_class_iterator;
+
+  /// reverse_base_class_iterator = Iterator that traverses the base classes
+  /// of a class in reverse order.
+ typedef std::reverse_iterator<base_class_const_iterator>
+   reverse_base_class_const_iterator;
+
   static CXXRecordDecl *Create(ASTContext &C, TagKind TK, DeclContext *DC,
                                SourceLocation L, IdentifierInfo *Id,
                                SourceLocation TKL = SourceLocation(),
@@ -423,6 +433,18 @@ public:
   base_class_const_iterator vbases_begin() const { return VBases; }
   base_class_iterator       vbases_end()         { return VBases + NumVBases; }
   base_class_const_iterator vbases_end()   const { return VBases + NumVBases; }
+  reverse_base_class_iterator vbases_rbegin() {
+    return reverse_base_class_iterator(vbases_end());
+  }
+  reverse_base_class_const_iterator vbases_rbegin() const {
+    return reverse_base_class_const_iterator(vbases_end());
+  }
+  reverse_base_class_iterator vbases_rend() {
+    return reverse_base_class_iterator(vbases_begin());
+  }
+  reverse_base_class_const_iterator vbases_rend() const {
+    return reverse_base_class_const_iterator(vbases_begin());
+ }
 
   /// Iterator access to method members.  The method iterator visits
   /// all method members of the class, including non-instance methods,