]> granicus.if.org Git - clang/commitdiff
Actually we can just inline the base typedef and use the injected class name for...
authorBenjamin Kramer <benny.kra@googlemail.com>
Sun, 1 Feb 2015 20:47:51 +0000 (20:47 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sun, 1 Feb 2015 20:47:51 +0000 (20:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@227765 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/CanonicalType.h
include/clang/AST/DeclTemplate.h

index d73daaab7abc936315121ccf9b61d1d44d2ce064..43dd942a1867262c2677704d3a8ef99de4bd4198 100644 (file)
@@ -382,20 +382,18 @@ namespace clang {
 /// \brief Iterator adaptor that turns an iterator over canonical QualTypes
 /// into an iterator over CanQualTypes.
 template <typename InputIterator>
-class CanTypeIterator
-    : public llvm::iterator_adaptor_base<
+struct CanTypeIterator
+    : llvm::iterator_adaptor_base<
           CanTypeIterator<InputIterator>, InputIterator,
           typename std::iterator_traits<InputIterator>::iterator_category,
           CanQualType,
           typename std::iterator_traits<InputIterator>::difference_type,
           CanProxy<Type>, CanQualType> {
-  typedef typename CanTypeIterator::iterator_adaptor_base BaseT;
-
-public:
   CanTypeIterator() {}
-  explicit CanTypeIterator(InputIterator Iter) : BaseT(std::move(Iter)) {}
+  explicit CanTypeIterator(InputIterator Iter)
+      : CanTypeIterator::iterator_adaptor_base(std::move(Iter)) {}
 
-  CanQualType operator*() const { return CanQualType::CreateUnsafe(*BaseT::I); }
+  CanQualType operator*() const { return CanQualType::CreateUnsafe(*this->I); }
   CanProxy<Type> operator->() const;
 };
 
index 2c1d8f42b1b48b64aa05897f368f7f4bd82f4afb..da370ae1851758f5b7bf834461392a915c770a08 100644 (file)
@@ -552,23 +552,20 @@ protected:
 
   template <typename EntryType, typename SETraits = SpecEntryTraits<EntryType>,
             typename DeclType = typename SETraits::DeclType>
-  class SpecIterator
-      : public llvm::iterator_adaptor_base<
+  struct SpecIterator
+      : llvm::iterator_adaptor_base<
             SpecIterator<EntryType, SETraits, DeclType>,
             typename llvm::FoldingSetVector<EntryType>::iterator,
             typename std::iterator_traits<typename llvm::FoldingSetVector<
                 EntryType>::iterator>::iterator_category,
             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
-    typedef typename SpecIterator::iterator_adaptor_base BaseT;
-
-  public:
     SpecIterator() {}
     explicit SpecIterator(
         typename llvm::FoldingSetVector<EntryType>::iterator SetIter)
-        : BaseT(std::move(SetIter)) {}
+        : SpecIterator::iterator_adaptor_base(std::move(SetIter)) {}
 
     DeclType *operator*() const {
-      return SETraits::getMostRecentDecl(&*BaseT::I);
+      return SETraits::getMostRecentDecl(&*this->I);
     }
     DeclType *operator->() const { return **this; }
   };