reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/clang/include/clang/AST/TypeLoc.h
  247 class UnqualTypeLoc : public TypeLoc {
  273 class QualifiedTypeLoc : public TypeLoc {

Declarations

tools/clang/include/clang/AST/Decl.h
   76 class TypeLoc;
tools/clang/include/clang/AST/NestedNameSpecifier.h
   36 class TypeLoc;
tools/clang/include/clang/Sema/DeclSpec.h
   41   class TypeLoc;
tools/clang/include/clang/Sema/Sema.h
  188   class TypeLoc;
tools/clang/lib/Index/IndexingContext.h
   32   class TypeLoc;

References

include/llvm/ADT/SmallVector.h
   75   AlignedCharArrayUnion<T> FirstEl;
  114   using value_type = T;
  115   using iterator = T *;
  116   using const_iterator = const T *;
  121   using reference = T &;
  122   using const_reference = const T &;
  123   using pointer = T *;
  124   using const_pointer = const T *;
  259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
  264   static void destroy_range(T *, T *) {}
  264   static void destroy_range(T *, T *) {}
  299   void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
  302   void push_back(const T &Elt) {
  305     memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
  315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
  316   using SuperClass = SmallVectorTemplateBase<T>;
  357   void resize(size_type N, const T &NV) {
  374   LLVM_NODISCARD T pop_back_val() {
  397   void append(size_type NumInputs, const T &Elt) {
  405   void append(std::initializer_list<T> IL) {
  412   void assign(size_type NumElts, const T &Elt) {
  429   void assign(std::initializer_list<T> IL) {
  467   iterator insert(iterator I, T &&Elt) {
  497   iterator insert(iterator I, const T &Elt) {
  526   iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
  637   void insert(iterator I, std::initializer_list<T> IL) {
  820   AlignedCharArrayUnion<T> InlineElts[N];
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  846   explicit SmallVector(size_t Size, const T &Value = T())
  865   SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
  884   SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/Support/AlignOf.h
   25   AlignerImpl<Ts...> rest;
   30   T t;
   36   SizerImpl<Ts...> rest;
   39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
   50       llvm::detail::SizerImpl<T, Ts...>)];
   50       llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/type_traits.h
   91     T t;
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  145       std::is_copy_constructible<detail::trivial_helper<T>>::value;
  147       !std::is_copy_constructible<T>::value;
  151       std::is_move_constructible<detail::trivial_helper<T>>::value;
  153       !std::is_move_constructible<T>::value;
  157       is_copy_assignable<detail::trivial_helper<T>>::value;
  159       !is_copy_assignable<T>::value;
  163       is_move_assignable<detail::trivial_helper<T>>::value;
  165       !is_move_assignable<T>::value;
  169       std::is_destructible<detail::trivial_helper<T>>::value;
tools/clang/include/clang/AST/ASTContext.h
  664   template <typename NodeT> DynTypedNodeList getParents(const NodeT &Node) {
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  300     if (ASTNodeKind::getFromNodeKind<TypeLoc>().isSame(NodeKind)) {
  301       auto TLA = getUnchecked<TypeLoc>();
  301       auto TLA = getUnchecked<TypeLoc>();
  302       auto TLB = Other.getUnchecked<TypeLoc>();
  302       auto TLB = Other.getUnchecked<TypeLoc>();
  332     if (ASTNodeKind::getFromNodeKind<TypeLoc>().isSame(NodeKind))
  333       return getUnchecked<TypeLoc>() == Other.getUnchecked<TypeLoc>();
  333       return getUnchecked<TypeLoc>() == Other.getUnchecked<TypeLoc>();
  361       if (ASTNodeKind::getFromNodeKind<TypeLoc>().isSame(Val.NodeKind)) {
  362         auto TL = Val.getUnchecked<TypeLoc>();
  362         auto TL = Val.getUnchecked<TypeLoc>();
  434     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  435       if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind))
  439     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  443     static DynTypedNode create(const T &Node) {
  445       Result.NodeKind = ASTNodeKind::getFromNodeKind<T>();
  446       new (Result.Storage.buffer) T(Node);
  463                               TypeLoc> Storage;
  513     TypeLoc, void> : public ValueConverter<TypeLoc> {};
tools/clang/include/clang/AST/Decl.h
  101   TypeLoc getTypeLoc() const; // implemented in TypeLoc.h
tools/clang/include/clang/AST/DeclCXX.h
 2252   TypeLoc getBaseClassLoc() const;
tools/clang/include/clang/AST/NestedNameSpecifier.h
  329   TypeLoc getTypeLoc() const;
  396   void Extend(ASTContext &Context, SourceLocation TemplateKWLoc, TypeLoc TL,
tools/clang/include/clang/AST/RecursiveASTVisitor.h
  219   bool TraverseTypeLoc(TypeLoc TL);
  459   bool WalkUpFromTypeLoc(TypeLoc TL) { return getDerived().VisitTypeLoc(TL); }
  460   bool VisitTypeLoc(TypeLoc TL) { return true; }
  686 bool RecursiveASTVisitor<Derived>::TraverseTypeLoc(TypeLoc TL) {
tools/clang/include/clang/AST/TypeLoc.h
   75   T castAs() const {
   77     T t;
   78     TypeLoc& tl = t;
   90     TypeLoc& tl = t;
  167   TypeLoc getNextTypeLoc() const {
  174   TypeLoc IgnoreParens() const;
  177   TypeLoc IgnoreMacroDefinitions() const;
  185   TypeLoc findExplicitQualifierLoc() const;
  198   void initializeFullCopy(TypeLoc Other) {
  206   void initializeFullCopy(TypeLoc Other, unsigned Size) {
  213   void copy(TypeLoc other);
  215   friend bool operator==(const TypeLoc &LHS, const TypeLoc &RHS) {
  215   friend bool operator==(const TypeLoc &LHS, const TypeLoc &RHS) {
  219   friend bool operator!=(const TypeLoc &LHS, const TypeLoc &RHS) {
  219   friend bool operator!=(const TypeLoc &LHS, const TypeLoc &RHS) {
  228   static bool isKind(const TypeLoc&) {
  232   static void initializeImpl(ASTContext &Context, TypeLoc TL,
  234   static TypeLoc getNextTypeLocImpl(TypeLoc TL);
  234   static TypeLoc getNextTypeLocImpl(TypeLoc TL);
  235   static TypeLoc IgnoreParensImpl(TypeLoc TL);
  235   static TypeLoc IgnoreParensImpl(TypeLoc TL);
  236   static SourceRange getLocalSourceRangeImpl(TypeLoc TL);
  240 inline TypeLoc TypeSourceInfo::getTypeLoc() const {
  247 class UnqualTypeLoc : public TypeLoc {
  263   static bool isKind(const TypeLoc &TL) {
  273 class QualifiedTypeLoc : public TypeLoc {
  279         TypeLoc::getLocalAlignmentForType(QualType(getTypePtr(), 0));
  291   void copyLocal(TypeLoc other) {
  295   TypeLoc getNextTypeLoc() const {
  317   static bool isKind(const TypeLoc &TL) {
  364   static bool isKind(const TypeLoc &TL) {
  401   TypeLoc getNextTypeLoc() const {
  442   TypeLoc getInnerTypeLoc() const {
  443     return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
  468     return TypeLoc::getLocalAlignmentForType(T);
  471   TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
  473   TypeLoc getNextTypeLoc(QualType T) const {
  474     return TypeLoc(T, getNonLocalData());
  489   static bool isKind(const TypeLoc &TL) {
  538   static bool isKind(const TypeLoc &TL);
  868   TypeLoc getModifiedLoc() const {
 1013   TypeLoc getBaseLoc() const {
 1098   TypeLoc getInnerLoc() const { return getInnerTypeLoc(); }
 1153   TypeLoc getInnerLoc() const {
 1162 inline TypeLoc TypeLoc::IgnoreParens() const {
 1173   TypeLoc getOriginalLoc() const {
 1219   TypeLoc getPointeeLoc() const {
 1446   TypeLoc getReturnLoc() const {
 1528   TypeLoc getElementLoc() const {
 1743   TypeLoc getPointeeTypeLoc() const {
 2007   TypeLoc getNamedTypeLoc() const {
 2227   TypeLoc getPatternLoc() const {
 2243   TypeLoc getValueLoc() const {
 2302   TypeLoc getValueLoc() const { return this->getInnerTypeLoc(); }
 2318   TypeLoc Cur = *this;
tools/clang/include/clang/AST/TypeLocVisitor.h
   28   RetTy Visit(TypeLoc TyLoc) {
   28   RetTy Visit(TypeLoc TyLoc) {
   38   RetTy Visit(UnqualTypeLoc TyLoc) {
   54   RetTy VisitTypeLoc(TypeLoc TyLoc) { return RetTy(); }
   54   RetTy VisitTypeLoc(TypeLoc TyLoc) { return RetTy(); }
tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h
  266 const NodeT *
  269     if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
  269     if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
  140 using TypeLocMatcher = internal::Matcher<TypeLoc>;
 2422 extern const internal::VariadicAllOfMatcher<TypeLoc> typeLoc;
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  454   template <typename T> Matcher<T> unconditionalConvertTo() const;
  479 class WrapperMatcherInterface : public MatcherInterface<T> {
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  520             std::is_same<T, QualType>::value &&
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  922       std::is_same<T, Decl>::value ||
  923       std::is_same<T, Stmt>::value ||
  924       std::is_same<T, QualType>::value ||
  925       std::is_same<T, Type>::value ||
  926       std::is_same<T, TypeLoc>::value ||
  926       std::is_same<T, TypeLoc>::value ||
  927       std::is_same<T, NestedNameSpecifier>::value ||
  928       std::is_same<T, NestedNameSpecifierLoc>::value ||
  929       std::is_same<T, CXXCtorInitializer>::value;
  994   bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
  997     static_assert(std::is_base_of<Decl, T>::value ||
  998                   std::is_base_of<Stmt, T>::value ||
  999                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1000                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1002                   std::is_base_of<QualType, T>::value,
 1009   bool matchesDescendantOf(const T &Node,
 1013     static_assert(std::is_base_of<Decl, T>::value ||
 1014                   std::is_base_of<Stmt, T>::value ||
 1015                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1016                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1017                   std::is_base_of<TypeLoc, T>::value ||
 1017                   std::is_base_of<TypeLoc, T>::value ||
 1018                   std::is_base_of<QualType, T>::value,
 1026   bool matchesAncestorOf(const T &Node,
 1030     static_assert(std::is_base_of<Decl, T>::value ||
 1031                       std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1032                       std::is_base_of<Stmt, T>::value ||
 1033                       std::is_base_of<TypeLoc, T>::value,
 1033                       std::is_base_of<TypeLoc, T>::value,
 1067   using head = T1;
 1073   using tail = TypeList<Ts...>;
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1097              Type, TypeLoc, CXXCtorInitializer>;
 1111     TypeList<Decl, Stmt, NestedNameSpecifier, NestedNameSpecifierLoc, TypeLoc,
 1141     explicit Adaptor(const Matcher<T> &InnerMatcher)
 1146     template <typename To> operator Matcher<To>() const {
 1151     const Matcher<T> InnerMatcher;
 1155   static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
 1155   static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
 1160   Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
 1160   Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
 1184   operator Matcher<T>() const {
 1185     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1268         ->template unconditionalConvertTo<T>();
 1285 class HasMatcher : public WrapperMatcherInterface<T> {
 1287   explicit HasMatcher(const Matcher<ChildT> &ChildMatcher)
 1290   bool matches(const T &Node, ASTMatchFinder *Finder,
 1304 class ForEachMatcher : public WrapperMatcherInterface<T> {
 1305   static_assert(IsBaseType<ChildT>::value,
 1309    explicit ForEachMatcher(const Matcher<ChildT> &ChildMatcher)
 1312   bool matches(const T& Node, ASTMatchFinder* Finder,
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1418 class HasDescendantMatcher : public WrapperMatcherInterface<T> {
 1419   static_assert(IsBaseType<DescendantT>::value,
 1423   explicit HasDescendantMatcher(const Matcher<DescendantT> &DescendantMatcher)
 1426   bool matches(const T &Node, ASTMatchFinder *Finder,
 1438 class HasParentMatcher : public WrapperMatcherInterface<T> {
 1439   static_assert(IsBaseType<ParentT>::value,
 1443   explicit HasParentMatcher(const Matcher<ParentT> &ParentMatcher)
 1446   bool matches(const T &Node, ASTMatchFinder *Finder,
 1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
 1459   static_assert(IsBaseType<AncestorT>::value,
 1463   explicit HasAncestorMatcher(const Matcher<AncestorT> &AncestorMatcher)
 1466   bool matches(const T &Node, ASTMatchFinder *Finder,
 1480 class ForEachDescendantMatcher : public WrapperMatcherInterface<T> {
 1481   static_assert(IsBaseType<DescendantT>::value,
 1486       const Matcher<DescendantT> &DescendantMatcher)
 1489   bool matches(const T &Node, ASTMatchFinder *Finder,
 1575     : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
 1575     : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
 1576                               makeAllOfComposite<T>> {
 1607 class TypeLocTypeMatcher : public WrapperMatcherInterface<TypeLoc> {
 1612   bool matches(const TypeLoc &Node, ASTMatchFinder *Finder,
 1651   explicit TypeLocTraverseMatcher(const Matcher<TypeLoc> &InnerMatcher,
 1658     TypeLoc NextNode = (Node.*TraverseFunction)();
 1681   using Self = TypeTraversePolymorphicMatcher<InnerTBase, Getter, MatcherImpl,
 1690       ArrayRef<const Matcher<InnerTBase> *> InnerMatchers)
 1704   const Matcher<InnerTBase> InnerMatcher;
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Sema/DeclSpec.h
   91   void Extend(ASTContext &Context, SourceLocation TemplateKWLoc, TypeLoc TL,
tools/clang/include/clang/Sema/Sema.h
 1654   static SourceRange getPrintable(TypeLoc TL) { return TL.getSourceRange();}
 1658     std::tuple<const Ts &...> Args;
 1669     BoundTypeDiagnoser(unsigned DiagID, const Ts &...Args)
 1793                            const Ts &...Args) {
 1794     BoundTypeDiagnoser<Ts...> Diagnoser(DiagID, Args...);
 6602                               const Ts &...Args) {
 6603     BoundTypeDiagnoser<Ts...> Diagnoser(DiagID, Args...);
 7282   void collectUnexpandedParameterPacks(TypeLoc TL,
 7603   DeduceAutoType(TypeLoc AutoTypeLoc, Expr *&Initializer, QualType &Result,
 7623   TypeLoc getReturnTypeLoc(FunctionDecl *FD) const;
 8312   TypeSourceInfo *SubstType(TypeLoc TL,
tools/clang/include/clang/Serialization/ASTReader.h
 1797                    TypeLoc TL);
 2508   void readTypeLoc(TypeLoc TL) {
tools/clang/include/clang/Serialization/ASTWriter.h
  895   void AddTypeLoc(TypeLoc TL);
tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
   86   bool VisitTypeLoc(const TypeLoc Loc) {
tools/clang/lib/ARCMigrate/ObjCMT.cpp
  975     TypeLoc TL = TSInfo->getTypeLoc();
  995     TypeLoc TL = TSInfo->getTypeLoc();
tools/clang/lib/ARCMigrate/TransARCAssign.cpp
   60             TypeLoc TLoc = var->getTypeSourceInfo()->getTypeLoc();
tools/clang/lib/ARCMigrate/TransGCAttrs.cpp
   63     TypeLoc TL = TInfo->getTypeLoc();
  243     TypeLoc TL = TInfo->getTypeLoc();
tools/clang/lib/AST/ASTContext.cpp
 2680     DataSize = TypeLoc::getFullDataSizeForType(T);
10392 ast_type_traits::DynTypedNode createDynTypedNode(const TypeLoc &Node) {
10426   bool TraverseNode(T Node, MapNodeTy MapNode, BaseTraverseFn BaseTraverse,
10488   bool TraverseTypeLoc(TypeLoc TypeLocNode) {
tools/clang/lib/AST/ASTTypeTraits.cpp
  142   else if (const TypeLoc *TL = get<TypeLoc>())
  142   else if (const TypeLoc *TL = get<TypeLoc>())
  170   if (const TypeLoc *TL = get<TypeLoc>())
  170   if (const TypeLoc *TL = get<TypeLoc>())
tools/clang/lib/AST/Comment.cpp
  130 static TypeLoc lookThroughTypedefOrTypeAliasLocs(TypeLoc &SrcTL) {
  130 static TypeLoc lookThroughTypedefOrTypeAliasLocs(TypeLoc &SrcTL) {
  131   TypeLoc TL = SrcTL.IgnoreParens();
  158 static bool getFunctionTypeLoc(TypeLoc TL, FunctionTypeLoc &ResFTL) {
  159   TypeLoc PrevTL;
  182     TypeLoc TL = MaybeFunctionTSI->getTypeLoc().getUnqualifiedLoc();
  309       TypeLoc TL = TSI->getTypeLoc().getUnqualifiedLoc();
  333     TypeLoc TL = TSI->getTypeLoc().getUnqualifiedLoc();
  354     TypeLoc TL = TSI->getTypeLoc().getUnqualifiedLoc();
tools/clang/lib/AST/DeclCXX.cpp
 2393 TypeLoc CXXCtorInitializer::getBaseClassLoc() const {
tools/clang/lib/AST/NestedNameSpecifier.cpp
  454     TypeLoc TL(Qualifier->getAsType(), TypeData);
  463 TypeLoc NestedNameSpecifierLoc::getTypeLoc() const {
  573                                            TypeLoc TL,
tools/clang/lib/AST/TypeLoc.cpp
   51 SourceRange TypeLoc::getLocalSourceRangeImpl(TypeLoc TL) {
   93   TypeLoc TyLoc(Ty, nullptr);
  108 class NextLoc : public TypeLocVisitor<NextLoc, TypeLoc> {
  122 TypeLoc TypeLoc::getNextTypeLocImpl(TypeLoc TL) {
  122 TypeLoc TypeLoc::getNextTypeLocImpl(TypeLoc TL) {
  129 void TypeLoc::initializeImpl(ASTContext &Context, TypeLoc TL,
  150   TypeLoc Source;
  153   TypeLocCopier(TypeLoc source) : Source(source) {}
  165 void TypeLoc::copy(TypeLoc other) {
  182   TypeLoc TL(getType(), Data);
  190   TypeLoc Cur = *this;
  191   TypeLoc LeftMost = Cur;
  227   TypeLoc Cur = *this;
  228   TypeLoc Last;
  271   static bool isTypeSpec(TypeLoc _) { return false; }
  291 bool TypeSpecTypeLoc::isKind(const TypeLoc &TL) {
  405 TypeLoc TypeLoc::IgnoreParensImpl(TypeLoc TL) {
  405 TypeLoc TypeLoc::IgnoreParensImpl(TypeLoc TL) {
  422 TypeLoc TypeLoc::findExplicitQualifierLoc() const {
  427   TypeLoc loc = IgnoreParens();
tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp
  118     else if (const TypeLoc *T = DynNode.get<TypeLoc>())
  118     else if (const TypeLoc *T = DynNode.get<TypeLoc>())
  171   bool TraverseTypeLoc(TypeLoc TypeLocNode) {
  233   bool baseTraverse(TypeLoc TypeLocNode) {
  254   bool match(const T &Node) {
  281   bool traverse(const T &Node) {
  282     static_assert(IsBaseType<T>::value,
  386   bool TraverseTypeLoc(TypeLoc TypeNode);
  498     } else if (auto *N = Node.get<TypeLoc>()) {
  505   template <typename T> void match(const T &Node) {
  548   void matchWithoutFilter(const T &Node, const MC &Matchers) {
  611   void matchDispatch(const TypeLoc *Node) {
  935 bool MatchASTVisitor::TraverseTypeLoc(TypeLoc TypeLocNode) {
 1070   } else if (NodeMatch.canConvertTo<TypeLoc>()) {
 1071     addMatcher(NodeMatch.convertTo<TypeLoc>(), Action);
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  592 const internal::VariadicAllOfMatcher<TypeLoc> typeLoc;
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  368     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
  565       ASTNodeKind::getFromNodeKind<TypeLoc>()};
tools/clang/lib/Index/IndexBody.cpp
   47   bool TraverseTypeLoc(TypeLoc TL) {
tools/clang/lib/Index/IndexTypeSourceInfo.cpp
  220 void IndexingContext::indexTypeLoc(TypeLoc TL,
tools/clang/lib/Index/IndexingContext.h
  107   void indexTypeLoc(TypeLoc TL, const NamedDecl *Parent,
tools/clang/lib/Sema/DeclSpec.cpp
   47                           TypeLoc TL, SourceLocation ColonColonLoc) {
tools/clang/lib/Sema/SemaCast.cpp
  352   TypeLoc TL = TSI->getTypeLoc();
tools/clang/lib/Sema/SemaChecking.cpp
13201     TypeLoc TL = TInfo->getTypeLoc();
tools/clang/lib/Sema/SemaCodeComplete.cpp
 2697   TypeLoc TL = TSInfo->getTypeLoc().getUnqualifiedLoc();
tools/clang/lib/Sema/SemaDecl.cpp
 5800 FixInvalidVariablyModifiedTypeLoc(TypeLoc SrcTL, TypeLoc DstTL) {
 5800 FixInvalidVariablyModifiedTypeLoc(TypeLoc SrcTL, TypeLoc DstTL) {
 5820   TypeLoc SrcElemTL = SrcATL.getElementLoc();
 5821   TypeLoc DstElemTL = DstATL.getElementLoc();
 6202     for (TypeLoc TL = FD->getTypeSourceInfo()->getTypeLoc();
13788           TypeLoc ResultType = getReturnTypeLoc(FD);
13858           TypeLoc TL = TI->getTypeLoc();
13886         TypeLoc TL = TI->getTypeLoc();
tools/clang/lib/Sema/SemaDeclAttr.cpp
 8282   bool VisitTypeLoc(TypeLoc Ty);
 8406 bool DiagnoseUnguardedAvailability::VisitTypeLoc(TypeLoc Ty) {
tools/clang/lib/Sema/SemaDeclCXX.cpp
 1793           TypeLoc TL = TN->getTypeSourceInfo()->getTypeLoc();
 5605   void CheckType(const NamedDecl *D, TypeLoc TL, Sema::AbstractDiagSelID Sel);
 5615   void Visit(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
 5663   void Check(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
 5667     if (TypeLoc Next = TL.getNextTypeLoc())
 5695 void AbstractUsageInfo::CheckType(const NamedDecl *D, TypeLoc TL,
15940   TypeLoc TL = TSInfo->getTypeLoc();
15972   TypeLoc TL = TSInfo->getTypeLoc();
tools/clang/lib/Sema/SemaDeclObjC.cpp
  717       TypeLoc qual = typeBoundInfo->getTypeLoc().findExplicitQualifierLoc();
tools/clang/lib/Sema/SemaExceptionSpec.cpp
  441     TypeLoc TL = TSInfo->getTypeLoc().IgnoreParens();
tools/clang/lib/Sema/SemaExpr.cpp
 5246   TypeLoc TL = PVD->getTypeSourceInfo()->getTypeLoc();
14150       TypeLoc Result = ExplicitSignature.getReturnLoc();
tools/clang/lib/Sema/SemaInit.cpp
 6836   for (TypeLoc TL = TSI->getTypeLoc();
 7791               TypeLoc TL = TInfo->getTypeLoc();
tools/clang/lib/Sema/SemaStmt.cpp
 3434 TypeLoc Sema::getReturnTypeLoc(FunctionDecl *FD) const {
 3453   TypeLoc OrigResultType = getReturnTypeLoc(FD);
tools/clang/lib/Sema/SemaTemplate.cpp
  933     TypeLoc TL = TInfo->getTypeLoc();
 2501   bool TraverseTypeLoc(TypeLoc TL) {
 4837 static TemplateArgumentLoc convertTypeTemplateArgumentToTemplate(TypeLoc TLoc) {
 7539 static SourceRange findTemplateParameter(unsigned Depth, TypeLoc TL) {
 9927   TypeLoc EnableIfTy = NNS.getTypeLoc();
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 4361     QualType Apply(TypeLoc TL) {
 4419 Sema::DeduceAutoType(TypeLoc Type, Expr *&Init, QualType &Result,
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
 1665 TypeSourceInfo *Sema::SubstType(TypeLoc TL,
 1717   TypeLoc TL = T->getTypeLoc().IgnoreParens();
 1755   TypeLoc TL = T->getTypeLoc();
 1814   TypeLoc OldTL = OldDI->getTypeLoc();
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 2431   TypeLoc TL = D->getTypeSourceInfo()->getTypeLoc();
 2468     TypeLoc Pattern = Expansion.getPatternLoc();
 3834   TypeLoc OldTL = OldTInfo->getTypeLoc().IgnoreParens();
 3838       TypeLoc NewTL = NewTInfo->getTypeLoc().IgnoreParens();
 4936       TypeLoc BaseTL = Init->getTypeSourceInfo()->getTypeLoc();
tools/clang/lib/Sema/SemaTemplateVariadic.cpp
  152     bool TraverseTypeLoc(TypeLoc TL) {
  508 void Sema::collectUnexpandedParameterPacks(TypeLoc TL,
 1042     TypeLoc Pattern = Expansion.getPatternLoc();
tools/clang/lib/Sema/SemaType.cpp
  885     if (TypeLoc qual = typeArgInfo->getTypeLoc().findExplicitQualifierLoc()) {
 1112   TypeLoc ResultTL = ResultTInfo->getTypeLoc();
 1185   TypeLoc ResultTL = ResultTInfo->getTypeLoc();
 5472       TypeLoc OldTL = TInfo->getTypeLoc();
 5585     void VisitTypeLoc(TypeLoc TL) {
 5635       TypeLoc ClsTL = ClsTInfo->getTypeLoc();
 5653           TypeLoc NamedTL = ETLoc.getNamedTypeLoc();
 5715     void VisitTypeLoc(TypeLoc TL) {
 5820     TypeLoc TL = ReturnTypeInfo->getTypeLoc();
tools/clang/lib/Sema/TreeTransform.h
  313   QualType TransformType(TypeLocBuilder &TLB, TypeLoc TL);
 3353   TypeLoc TransformTypeInObjectScope(TypeLoc TL,
 3353   TypeLoc TransformTypeInObjectScope(TypeLoc TL,
 3363   TypeSourceInfo *TransformTSIInObjectScope(TypeLoc TL, QualType ObjectType,
 3728       TypeLoc TL = TransformTypeInObjectScope(Q.getTypeLoc(), ObjectType,
 4266   TypeLoc TL = DI->getTypeLoc();
 4278 TreeTransform<Derived>::TransformType(TypeLocBuilder &TLB, TypeLoc T) {
 4318   TypeLoc TL = DI->getTypeLoc();
 4441 TypeLoc
 4442 TreeTransform<Derived>::TransformTypeInObjectScope(TypeLoc TL,
 4471     TypeLoc TL, QualType ObjectType, NamedDecl *UnqualLookup,
 5105     TypeLoc OldTL = OldDI->getTypeLoc();
 5109     TypeLoc NewTL = OldDI->getTypeLoc();
 5172         TypeLoc TL = OldParm->getTypeSourceInfo()->getTypeLoc();
 5174         TypeLoc Pattern = ExpansionTL.getPatternLoc();
 6506     TypeLoc TypeArgLoc = TypeArgInfo->getTypeLoc();
 6521       TypeLoc PatternLoc = PackExpansionLoc.getPatternLoc();
10976     TypeLoc FromTL = From->getTypeLoc();
10997     TypeLoc PatternTL = ExpansionTL.getPatternLoc();
tools/clang/lib/Sema/TypeLocBuilder.cpp
   18 void TypeLocBuilder::pushFullCopy(TypeLoc L) {
   22   SmallVector<TypeLoc, 4> TypeLocs;
   23   TypeLoc CurTL = L;
   30     TypeLoc CurTL = TypeLocs[e-i-1];
   62 TypeLoc TypeLocBuilder::pushImpl(QualType T, size_t LocalSize, unsigned LocalAlignment) {
tools/clang/lib/Sema/TypeLocBuilder.h
   64   void pushFullCopy(TypeLoc L);
  114   TypeLoc getTypeLocInContext(ASTContext &Context, QualType T) {
  127   TypeLoc pushImpl(QualType T, size_t LocalSize, unsigned LocalAlignment);
  138   TypeLoc getTemporaryTypeLoc(QualType T) {
tools/clang/lib/Serialization/ASTReader.cpp
 7240                             unsigned &Idx, TypeLoc TL) {
tools/clang/lib/Serialization/ASTWriter.cpp
 5627 void ASTRecordWriter::AddTypeLoc(TypeLoc TL) {
tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp
  109 SourceLocation StartLocationForType(TypeLoc TL) {
  122 SourceLocation EndLocationForType(TypeLoc TL) {
  124   while (TL.getTypeLocClass() == TypeLoc::Elaborated ||
  125          TL.getTypeLocClass() == TypeLoc::Qualified)
  131   if (TL.getTypeLocClass() == TypeLoc::TemplateSpecialization) {
  139 NestedNameSpecifier *GetNestedNameForType(TypeLoc TL) {
  141   while (TL.getTypeLocClass() == TypeLoc::Qualified)
  352   bool VisitTypeLoc(TypeLoc Loc) {
  354     TypeLoc ParentTypeLoc;
  365       if (const auto *TL = Parents[0].get<TypeLoc>())
  365       if (const auto *TL = Parents[0].get<TypeLoc>())
  405       TypeLoc TargetLoc = Loc;
  412         TypeLoc TargetLoc = Loc;
  451   const NamedDecl *getSupportedDeclFromTypeLoc(TypeLoc Loc) {
  464   const Decl *getClosestAncestorDecl(const ASTNodeType &Node) {
  477   const TypeLoc *getParentTypeLoc(TypeLoc Loc) const {
  477   const TypeLoc *getParentTypeLoc(TypeLoc Loc) const {
  482     return Parents[0].get<TypeLoc>();
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.cpp
   40 SourceLocation startLocationForType(TypeLoc TLoc) {
   43   if (TLoc.getTypeLocClass() == TypeLoc::Elaborated) {
   53 SourceLocation endLocationForType(TypeLoc TLoc) {
   55   while (TLoc.getTypeLocClass() == TypeLoc::Elaborated ||
   56          TLoc.getTypeLocClass() == TypeLoc::Qualified)
   62   if (TLoc.getTypeLocClass() == TypeLoc::TemplateSpecialization)
  337 bool isTemplateParameter(TypeLoc Type) {
  339     if (Type.getTypeLocClass() == TypeLoc::SubstTemplateTypeParm)
  570   } else if (const auto *TLoc = Result.Nodes.getNodeAs<TypeLoc>("type")) {
  570   } else if (const auto *TLoc = Result.Nodes.getNodeAs<TypeLoc>("type")) {
  574     TypeLoc Loc = *TLoc;
  575     while (Loc.getTypeLocClass() == TypeLoc::Qualified)
  577     if (Loc.getTypeLocClass() == TypeLoc::Elaborated) {
  891     SourceLocation End, TypeLoc Type) {
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.h
   78                   SourceLocation Start, SourceLocation End, TypeLoc Type);
  162   llvm::SmallVector<TypeLoc, 8> BaseCtorInitializerTypeLocs;
tools/clang/tools/extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
   53     if (const TypeLoc DestTL = DestVD->getTypeSourceInfo()->getTypeLoc())
tools/clang/tools/extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp
   84   const auto *TL = selectFirst<TypeLoc>("t", Matches);
   84   const auto *TL = selectFirst<TypeLoc>("t", Matches);
tools/clang/tools/extra/clang-tidy/google/IntegerTypesCheck.cpp
   75   auto TL = *Result.Nodes.getNodeAs<TypeLoc>("tl");
   75   auto TL = *Result.Nodes.getNodeAs<TypeLoc>("tl");
tools/clang/tools/extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp
  260       Result.Nodes.getNodeAs<TypeLoc>("typeloc")->getSourceRange());
tools/clang/tools/extra/clang-tidy/modernize/AvoidCArraysCheck.cpp
   62   const auto *ArrayType = Result.Nodes.getNodeAs<TypeLoc>("typeloc");
   62   const auto *ArrayType = Result.Nodes.getNodeAs<TypeLoc>("typeloc");
tools/clang/tools/extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp
   52   const auto *TL = Result.Nodes.getNodeAs<TypeLoc>("TypeLoc");
   52   const auto *TL = Result.Nodes.getNodeAs<TypeLoc>("TypeLoc");
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertUtils.cpp
  135 bool DeclFinderASTVisitor::VisitTypeLoc(TypeLoc TL) {
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertUtils.h
  200   bool VisitTypeLoc(clang::TypeLoc TL);
tools/clang/tools/extra/clang-tidy/modernize/PassByValueCheck.cpp
  202     auto ParamTL = ParmDecl->getTypeSourceInfo()->getTypeLoc();
  209     TypeLoc ValueTL = RefTL.getPointeeLoc();
tools/clang/tools/extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp
  243     TypeLoc TL = Lambda->getLambdaClass()->getLambdaTypeInfo()->getTypeLoc();
tools/clang/tools/extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
  171   if (const auto *TL = Result.Nodes.getNodeAs<TypeLoc>(AutoPtrTokenId)) {
  171   if (const auto *TL = Result.Nodes.getNodeAs<TypeLoc>(AutoPtrTokenId)) {
tools/clang/tools/extra/clang-tidy/modernize/UseAutoCheck.cpp
  436   TypeLoc Loc = FirstDecl->getTypeSourceInfo()->getTypeLoc();
  438     while (Loc.getTypeLocClass() == TypeLoc::Pointer ||
  439            Loc.getTypeLocClass() == TypeLoc::Qualified)
  442   while (Loc.getTypeLocClass() == TypeLoc::LValueReference ||
  443          Loc.getTypeLocClass() == TypeLoc::RValueReference ||
  444          Loc.getTypeLocClass() == TypeLoc::Qualified) {
tools/clang/tools/extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
   43   bool TraverseTypeLoc(TypeLoc TL, bool Elaborated = false) {
   49       case TypeLoc::Record:
   54       case TypeLoc::Enum:
   59       case TypeLoc::TemplateSpecialization:
tools/clang/tools/extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp
   72 template <typename T> static T getInnerTypeLocAs(TypeLoc Loc) {
   94       Result.Nodes.getNodeAs<TypeLoc>("FunctorParentLoc")
tools/clang/tools/extra/clang-tidy/readability/IdentifierNamingCheck.cpp
  747   if (const auto *Loc = Result.Nodes.getNodeAs<TypeLoc>("typeLoc")) {
  747   if (const auto *Loc = Result.Nodes.getNodeAs<TypeLoc>("typeLoc")) {
tools/clang/tools/extra/clangd/FindTarget.cpp
  355   else if (const TypeLoc *TL = N.get<TypeLoc>())
  355   else if (const TypeLoc *TL = N.get<TypeLoc>())
  587   bool VisitTypeLoc(TypeLoc TTL) {
  597     TypeLoc Inner = L.getNamedTypeLoc().getUnqualifiedLoc();
  647     if (auto TL = L.getTypeLoc())
  681     if (const TypeLoc *TL = N.get<TypeLoc>())
  681     if (const TypeLoc *TL = N.get<TypeLoc>())
tools/clang/tools/extra/clangd/Selection.cpp
  126   if (const TypeLoc *TL = N.get<TypeLoc>()) {
  126   if (const TypeLoc *TL = N.get<TypeLoc>()) {
  129     if (TL->getTypeLocClass() == TypeLoc::Qualified)
  200   bool TraverseTypeLoc(TypeLoc X) {
  236     return traverseNode<TypeLoc>(
  279   bool traverseNode(T *Node, const Func &Body) {
tools/clang/tools/extra/clangd/refactor/tweaks/ExpandAutoType.cpp
   62     if (auto *TypeNode = Node->ASTNode.get<TypeLoc>()) {
tools/clang/tools/extra/modularize/Modularize.cpp
  553   bool TraverseTypeLoc(TypeLoc TL) { return true; }
  744   bool TraverseTypeLoc(TypeLoc TL) { return true; }
tools/clang/tools/libclang/CIndex.cpp
  725     TypeLoc TL = SpecType->getTypeLoc();
  817     TypeLoc TL = TSInfo->getTypeLoc().IgnoreParens();
 1876   TypeLocVisit(TypeLoc tl, CXCursor parent) :
 1884   TypeLoc get() const { 
 3180         TypeLoc TL = E->getCallOperator()->getTypeSourceInfo()->getTypeLoc();
tools/clang/tools/libclang/CXCursor.cpp
 1130   TypeLoc TL = Type->getTypeLoc();
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
  376   TypeLoc TL;
tools/clang/unittests/AST/ASTContextParentMapTest.cpp
   40   MatchVerifier<TypeLoc> Verifier;
tools/clang/unittests/AST/ASTTraverserTest.cpp
  229   const auto TL = Parm->getTypeSourceInfo()->getTypeLoc();
tools/clang/unittests/AST/ASTTypeTraitsTest.cpp
   25   return ASTNodeKind::getFromNodeKind<T>();
tools/clang/unittests/AST/MatchVerifier.h
   62                       const NodeType &Node) {}
  150   const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
  150   const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
  216 class RangeVerifier : public MatchVerifier<NodeType> {
  228               const NodeType &Node) override {
  250   virtual SourceRange getRange(const NodeType &Node) {
tools/clang/unittests/AST/SourceLocationTest.cpp
  151   RangeVerifier<TypeLoc> Verifier;
  157   RangeVerifier<TypeLoc> Verifier;
  163   RangeVerifier<TypeLoc> Verifier;
  169   RangeVerifier<TypeLoc> Verifier;
  175   RangeVerifier<TypeLoc> Verifier;
  181   RangeVerifier<TypeLoc> Verifier;
  187   RangeVerifier<TypeLoc> Verifier;
  193   RangeVerifier<TypeLoc> Verifier;
  199   RangeVerifier<TypeLoc> Verifier;
  205   RangeVerifier<TypeLoc> Verifier;
  211   RangeVerifier<TypeLoc> Verifier;
  217   RangeVerifier<TypeLoc> Verifier;
  223   RangeVerifier<TypeLoc> Verifier;
  229   RangeVerifier<TypeLoc> Verifier;
  235   RangeVerifier<TypeLoc> Verifier;
  291 class TemplateAngleBracketLocRangeVerifier : public RangeVerifier<TypeLoc> {
  293   SourceRange getRange(const TypeLoc &Node) override {
  316 class UnaryTransformTypeLocParensRangeVerifier : public RangeVerifier<TypeLoc> {
  318   SourceRange getRange(const TypeLoc &Node) override {
  672 class ExceptionSpecRangeVerifier : public RangeVerifier<TypeLoc> {
  674   SourceRange getRange(const TypeLoc &Node) override {
  686       TypeLoc TL = TSI->getTypeLoc();
tools/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp
  212           .getTypedMatcher<TypeLoc>()));
tools/clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp
   17   bool VisitTypeLoc(TypeLoc TypeLocation) {
usr/include/c++/7.4.0/bits/stl_algo.h
 3900 	 const _Tp& __val)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
usr/include/c++/7.4.0/tuple
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  159       static constexpr _Head&
  162       static constexpr const _Head&
  350       static constexpr _Head&
  353       static constexpr const _Head&
  360       constexpr _Tuple_impl(const _Head& __head)
  365         constexpr _Tuple_impl(_UHead&& __head)
  390 		    const _Head& __head)
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  608         constexpr tuple(const _Elements&... __elements)
  619       explicit constexpr tuple(const _Elements&... __elements)
  646         constexpr tuple(_UElements&&... __elements)
  730 	      const _Elements&... __elements)
  741                        const _Elements&... __elements)
 1302     constexpr _Head&
 1307     constexpr const _Head&
 1313     constexpr __tuple_element_t<__i, tuple<_Elements...>>&
 1319     constexpr const __tuple_element_t<__i, tuple<_Elements...>>&
 1325     constexpr __tuple_element_t<__i, tuple<_Elements...>>&&
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
  984       typedef decltype(__test<_Tp, _Arg>(0)) type;
  989     : public __and_<is_destructible<_Tp>,
  990                     __is_direct_constructible_impl<_Tp, _Arg>>
 1072 			 __is_direct_constructible_ref_cast<_Tp, _Arg>,
 1073 			 __is_direct_constructible_new_safe<_Tp, _Arg>
 1079     : public __is_direct_constructible_new<_Tp, _Arg>::type
 1119     : public __is_direct_constructible<_Tp, _Arg>
 1130     : public __is_constructible_impl<_Tp, _Args...>::type
 1142     : public is_constructible<_Tp, const _Tp&>
 1142     : public is_constructible<_Tp, const _Tp&>
 1148     : public __is_copy_constructible_impl<_Tp>
 1160     : public is_constructible<_Tp, _Tp&&>
 1160     : public is_constructible<_Tp, _Tp&&>
 1166     : public __is_move_constructible_impl<_Tp>
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1659     { typedef _Tp&&   type; };
 1955     { typedef _Tp     type; };