From 89ed850a1b586a4ed303ee8a8140bed11b85b390 Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Fri, 7 Aug 2009 21:44:39 +0000 Subject: [PATCH] Add rbegin and rend for virtual bases, might come in handy some day. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78412 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/DeclCXX.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h index 19c21cba77..9d96f80cfa 100644 --- a/include/clang/AST/DeclCXX.h +++ b/include/clang/AST/DeclCXX.h @@ -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 + reverse_base_class_iterator; + + /// reverse_base_class_iterator = Iterator that traverses the base classes + /// of a class in reverse order. + typedef std::reverse_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, -- 2.40.0