13#ifndef LLVM_CLANG_AST_ATTRITERATOR_H
14#define LLVM_CLANG_AST_ATTRITERATOR_H
17#include "llvm/ADT/ADL.h"
18#include "llvm/ADT/SmallVector.h"
19#include "llvm/Support/Casting.h"
34template <
typename SpecificAttr,
typename Container = AttrVec>
36 using Iterator =
typename Container::const_iterator;
45 mutable Iterator Current;
47 void AdvanceToNext()
const {
48 while (!isa<SpecificAttr>(*Current))
52 void AdvanceToNext(Iterator I)
const {
53 while (Current != I && !isa<SpecificAttr>(*Current))