#ifndef LLVM_CLANG_AST_ATTRITERATOR_H
#define LLVM_CLANG_AST_ATTRITERATOR_H
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Casting.h"
#include <cassert>
#include <cstddef>
#include <iterator>
namespace clang {
class Attr;
AttrVec;
template <typename SpecificAttr, typename Container = AttrVec>
class specific_attr_iterator { … };
template <typename SpecificAttr, typename Container>
inline specific_attr_iterator<SpecificAttr, Container>
specific_attr_begin(const Container& container) { … }
template <typename SpecificAttr, typename Container>
inline specific_attr_iterator<SpecificAttr, Container>
specific_attr_end(const Container& container) { … }
template <typename SpecificAttr, typename Container>
inline bool hasSpecificAttr(const Container& container) { … }
template <typename SpecificAttr, typename Container>
inline SpecificAttr *getSpecificAttr(const Container& container) { … }
}
#endif