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

Derived Classes

tools/clang/include/clang/AST/DeclTemplate.h
  736 class RedeclarableTemplateDecl : public TemplateDecl,
 1438 class TemplateTemplateParmDecl final
 1601 class BuiltinTemplateDecl : public TemplateDecl {
 3046 class ConceptDecl : public TemplateDecl, public Mergeable<ConceptDecl> {

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  181 ABSTRACT_DECL(TEMPLATE(Template, NamedDecl))
tools/clang/include/clang/AST/ASTContext.h
  119 class TemplateDecl;
tools/clang/include/clang/AST/DeclBase.h
   68 class TemplateDecl;
tools/clang/include/clang/AST/DeclCXX.h
   73 class TemplateDecl;
tools/clang/include/clang/AST/DeclTemplate.h
   51 class TemplateDecl;
tools/clang/include/clang/AST/DeclarationName.h
   39 class TemplateDecl;
tools/clang/include/clang/AST/TemplateName.h
   41 class TemplateDecl;
tools/clang/include/clang/Sema/Sema.h
  179   class TemplateDecl;
tools/clang/tools/libclang/CXCursor.h
   40 class TemplateDecl;
tools/lldb/include/lldb/Core/ClangForward.h
  110 class TemplateDecl;

References

include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  367 dyn_cast_or_null(Y *Val) {
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
tools/clang/include/clang/AST/ASTContext.h
 2001                                         TemplateDecl *Template) const;
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  469     : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/DeclBase.h
 1026   TemplateDecl *getDescribedTemplate() const;
tools/clang/include/clang/AST/DeclCXX.h
 1884   TemplateDecl *getDeducedTemplate() const {
tools/clang/include/clang/AST/DeclTemplate.h
  736 class RedeclarableTemplateDecl : public TemplateDecl,
 1439     : public TemplateDecl,
 1601 class BuiltinTemplateDecl : public TemplateDecl {
 3046 class ConceptDecl : public TemplateDecl, public Mergeable<ConceptDecl> {
 3087 inline TemplateDecl *getAsTypeTemplateDecl(Decl *D) {
 3088   auto *TD = dyn_cast<TemplateDecl>(D);
 3088   auto *TD = dyn_cast<TemplateDecl>(D);
tools/clang/include/clang/AST/DeclarationName.h
   82   TemplateDecl *Template;
   89   CXXDeductionGuideNameExtra(TemplateDecl *TD)
  451   TemplateDecl *getCXXDeductionGuideTemplate() const {
  624   DeclarationName getCXXDeductionGuideName(TemplateDecl *TD);
tools/clang/include/clang/AST/TemplateName.h
  189       llvm::PointerUnion4<TemplateDecl *, UncommonTemplateNameStorage *,
  228   explicit TemplateName(TemplateDecl *Template);
  249   TemplateDecl *getAsTemplateDecl() const;
  400   TemplateDecl *Template;
  403                         TemplateDecl *Template)
  416   TemplateDecl *getDecl() const { return Template; }
  420   TemplateDecl *getTemplateDecl() const { return Template; }
  427                       bool TemplateKeyword, TemplateDecl *Template) {
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  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>()),
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  506   Matcher(const Matcher<From> &Other,
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  534   bool matches(const T &Node,
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
tools/clang/include/clang/Sema/Lookup.h
  507   DeclClass *getAsSingle() const {
  509     return dyn_cast<DeclClass>(getFoundDecl());
tools/clang/include/clang/Sema/Sema.h
 6698   TemplateDecl *AdjustDeclIfTemplate(Decl *&Decl);
 6853                                               TemplateDecl *PrimaryTemplate,
 6903   SubstDefaultTemplateArgumentIfAvailable(TemplateDecl *Template,
 6961   bool CheckTemplateArgumentList(TemplateDecl *Template,
 7611   void DeclareImplicitDeductionGuides(TemplateDecl *Template,
 7661       TemplateParameterList *P, TemplateDecl *AArg, SourceLocation Loc);
 7945                           TemplateParameter Param, TemplateDecl *Template,
 7961                           TemplateDecl *Template,
 8010                           TemplateDecl *Template,
 8020                           ConstraintsCheck, TemplateDecl *Template,
 8029                           ConstraintSubstitution, TemplateDecl *Template,
tools/clang/include/clang/Sema/TypoCorrection.h
  156   DeclClass *getCorrectionDeclAs() const {
  157     return dyn_cast_or_null<DeclClass>(getCorrectionDecl());
tools/clang/include/clang/Serialization/ASTReader.h
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
tools/clang/lib/AST/ASTContext.cpp
 5392     TemplateDecl *Template = Name.getAsTemplateDecl();
 5397     return TemplateName(cast<TemplateDecl>(Template->getCanonicalDecl()));
 7743                                      TemplateDecl *Template) const {
tools/clang/lib/AST/ASTDiagnostic.cpp
  548       TemplateDecl *TD = nullptr;
  598     void SetTemplateDiff(TemplateDecl *FromTD, TemplateDecl *ToTD,
  598     void SetTemplateDiff(TemplateDecl *FromTD, TemplateDecl *ToTD,
  628     void SetTemplateTemplateDiff(TemplateDecl *FromTD, TemplateDecl *ToTD,
  628     void SetTemplateTemplateDiff(TemplateDecl *FromTD, TemplateDecl *ToTD,
  766     void GetTemplateDiff(TemplateDecl *&FromTD, TemplateDecl *&ToTD,
  766     void GetTemplateDiff(TemplateDecl *&FromTD, TemplateDecl *&ToTD,
  787     void GetTemplateTemplateDiff(TemplateDecl *&FromTD, TemplateDecl *&ToTD) {
  787     void GetTemplateTemplateDiff(TemplateDecl *&FromTD, TemplateDecl *&ToTD) {
 1151     TemplateDecl *FromDecl = GetTemplateDecl(FromIter);
 1152     TemplateDecl *ToDecl = GetTemplateDecl(ToIter);
 1416   static TemplateDecl *GetTemplateDecl(const TSTiterator &Iter) {
 1472         TemplateDecl *FromTD, *ToTD;
 1541         TemplateDecl *FromTD, *ToTD;
 1701   void PrintTemplateTemplate(TemplateDecl *FromTD, TemplateDecl *ToTD,
 1701   void PrintTemplateTemplate(TemplateDecl *FromTD, TemplateDecl *ToTD,
tools/clang/lib/AST/ASTImporter.cpp
 5031   auto *TemplateWithDef = ToTemplatedDef->getDescribedTemplate();
 8297       return TemplateName(cast<TemplateDecl>(*ToTemplateOrErr));
 8331           cast<TemplateDecl>(*ToTemplateOrErr));
 8660           cast<TemplateDecl>(*ToTemplateOrErr));
tools/clang/lib/AST/ASTStructuralEquivalence.cpp
  238   TemplateDecl *TemplateDeclN1 = N1.getAsTemplateDecl();
  239   TemplateDecl *TemplateDeclN2 = N2.getAsTemplateDecl();
 1501     StructuralEquivalenceContext &Ctx, TemplateDecl *D1, TemplateDecl *D2) {
 1501     StructuralEquivalenceContext &Ctx, TemplateDecl *D1, TemplateDecl *D2) {
 1735   TemplateDecl *Template1 = D1->getDescribedTemplate();
 1736   TemplateDecl *Template2 = D2->getDescribedTemplate();
tools/clang/lib/AST/Decl.cpp
  346       if (TemplateDecl *Template =
  614   if (auto *TD = dyn_cast<TemplateDecl>(D))
  869   } else if (const auto *temp = dyn_cast<TemplateDecl>(D)) {
  869   } else if (const auto *temp = dyn_cast<TemplateDecl>(D)) {
  926         isa<TemplateDecl>(D)))
 1025   } else if (const auto *temp = dyn_cast<TemplateDecl>(D)) {
 1025   } else if (const auto *temp = dyn_cast<TemplateDecl>(D)) {
 1170   if (const auto *TD = dyn_cast<TemplateDecl>(ND))
 1170   if (const auto *TD = dyn_cast<TemplateDecl>(ND))
tools/clang/lib/AST/DeclBase.cpp
  227   return isa<TemplateDecl>(this);
  230 TemplateDecl *Decl::getDescribedTemplate() const {
tools/clang/lib/AST/DeclPrinter.cpp
   82     void VisitTemplateDecl(const TemplateDecl *D);
 1124 void DeclPrinter::VisitTemplateDecl(const TemplateDecl *D) {
tools/clang/lib/AST/DeclarationName.cpp
  215   auto *TD = getCXXDeductionGuideTemplate();
  282 DeclarationNameTable::getCXXDeductionGuideName(TemplateDecl *Template) {
  283   Template = cast<TemplateDecl>(Template->getCanonicalDecl());
tools/clang/lib/AST/ExternalASTMerger.cpp
  468   if (!isa<TemplateDecl>(D))
tools/clang/lib/AST/ItaniumMangle.cpp
  467   void mangleTemplateName(const TemplateDecl *TD,
  480   void mangleUnscopedTemplateName(const TemplateDecl *ND,
  497   void mangleNestedName(const TemplateDecl *TD,
  503   void mangleTemplatePrefix(const TemplateDecl *ND, bool NoFunction=false);
  789 static const TemplateDecl *
  793     if (const TemplateDecl *TD = FD->getPrimaryTemplate()) {
  888     if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) {
  936 void CXXNameMangler::mangleTemplateName(const TemplateDecl *TD,
  961     const TemplateDecl *ND, const AbiTagList *AdditionalAbiTags) {
  985   if (TemplateDecl *TD = Template.getAsTemplateDecl())
 1522   if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) {
 1533 void CXXNameMangler::mangleNestedName(const TemplateDecl *TD,
 1842   if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) {
 1857   if (TemplateDecl *TD = Template.getAsTemplateDecl())
 1877 void CXXNameMangler::mangleTemplatePrefix(const TemplateDecl *ND,
 1911   TemplateDecl *TD = nullptr;
 2057       TemplateDecl *TD = TN.getAsTemplateDecl();
 3299   if (TemplateDecl *TD = T->getTemplateName().getAsTemplateDecl()) {
 4695   if (TemplateDecl *TD = Template.getAsTemplateDecl())
 4860   if (TemplateDecl *TD = Template.getAsTemplateDecl())
tools/clang/lib/AST/MicrosoftMangle.cpp
  350   void mangleUnscopedTemplateName(const TemplateDecl *ND);
  352   mangleTemplateInstantiationName(const TemplateDecl *TD,
  382   void mangleTemplateArgs(const TemplateDecl *TD,
  384   void mangleTemplateArg(const TemplateDecl *TD, const TemplateArgument &TA,
  759 static const TemplateDecl *
  763     if (const TemplateDecl *TD = FD->getPrimaryTemplate()) {
  795   if (const TemplateDecl *TD = isTemplate(ND, TemplateArgs)) {
 1316     const TemplateDecl *TD, const TemplateArgumentList &TemplateArgs) {
 1342 MicrosoftCXXNameMangler::mangleUnscopedTemplateName(const TemplateDecl *TD) {
 1417     const TemplateDecl *TD, const TemplateArgumentList &TemplateArgs) {
 1435 void MicrosoftCXXNameMangler::mangleTemplateArg(const TemplateDecl *TD,
tools/clang/lib/AST/ODRHash.cpp
  100     auto *Template = Name.getCXXDeductionGuideTemplate();
  412   void VisitTemplateDecl(const TemplateDecl *D) {
  415     Inherited::VisitTemplateDecl(D);
tools/clang/lib/AST/QualTypeNames.cpp
   62   TemplateDecl *ArgTDecl = TName.getAsTemplateDecl();
tools/clang/lib/AST/TemplateName.cpp
   66 TemplateName::TemplateName(TemplateDecl *Template) : Storage(Template) {}
   81   if (Storage.is<TemplateDecl *>())
   99 TemplateDecl *TemplateName::getAsTemplateDecl() const {
  100   if (TemplateDecl *Template = Storage.dyn_cast<TemplateDecl *>())
  100   if (TemplateDecl *Template = Storage.dyn_cast<TemplateDecl *>())
  155   TemplateDecl *Decl = getAsTemplateDecl();
  163   Decl = cast<TemplateDecl>(Decl->getMostRecentDecl());
  165     Decl = cast<TemplateDecl>(Decl->getPreviousDecl());
  172   if (TemplateDecl *Template = getAsTemplateDecl()) {
  204   if (TemplateDecl *Template = getAsTemplateDecl()) {
  222   if (TemplateDecl *Template = Storage.dyn_cast<TemplateDecl *>())
  222   if (TemplateDecl *Template = Storage.dyn_cast<TemplateDecl *>())
tools/clang/lib/AST/Type.cpp
 3869     if (TemplateDecl *templateDecl
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/Index/IndexDecl.cpp
   69       if (const TemplateDecl *TD = TALoc.getArgument()
  668   bool VisitTemplateDecl(const TemplateDecl *D) {
tools/clang/lib/Index/IndexTypeSourceInfo.cpp
  147     } else if (const TemplateDecl *D = TemplName.getAsTemplateDecl()) {
tools/clang/lib/Index/IndexingContext.cpp
  294   if (auto TD = dyn_cast<TemplateDecl>(D)) {
tools/clang/lib/Index/USRGeneration.cpp
  928   if (TemplateDecl *Template = Name.getAsTemplateDecl()) {
tools/clang/lib/Sema/SemaAccess.cpp
 1478   } else if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D)) {
 1478   } else if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D)) {
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
  941   TemplateDecl *TD = Template.getAsTemplateDecl();
tools/clang/lib/Sema/SemaCodeComplete.cpp
 2975     const TemplateDecl *Template, CodeCompletionBuilder &Result,
 2981   Template = cast<TemplateDecl>(Template->getCanonicalDecl());
 3422   if (const auto *Template = dyn_cast<TemplateDecl>(ND)) {
 3422   if (const auto *Template = dyn_cast<TemplateDecl>(ND)) {
tools/clang/lib/Sema/SemaDecl.cpp
  195       auto *TD = TST->getTemplateName().getAsTemplateDecl();
  489     if (auto *TD = getAsTypeTemplateDecl(IIDecl))
  777     if (CheckTemplate && isa<TemplateDecl>(*I))
  955             UnderlyingFirstDecl && isa<TemplateDecl>(UnderlyingFirstDecl)) {
 1089       auto *TD = cast<TemplateDecl>(getAsTemplateNameDecl(
 1089       auto *TD = cast<TemplateDecl>(getAsTemplateNameDecl(
 1154   if (isa<TemplateDecl>(FirstDecl) && !isa<FunctionTemplateDecl>(FirstDecl) &&
 1157         TemplateName(cast<TemplateDecl>(FirstDecl)));
 1232   auto *TD = Name.getAsTemplateDecl();
 5161     auto *Template = TN.getAsTemplateDecl();
 6230   if (TemplateDecl *OldTD = dyn_cast<TemplateDecl>(OldDecl)) {
 6230   if (TemplateDecl *OldTD = dyn_cast<TemplateDecl>(OldDecl)) {
 6236   if (TemplateDecl *NewTD = dyn_cast<TemplateDecl>(NewDecl)) {
 6236   if (TemplateDecl *NewTD = dyn_cast<TemplateDecl>(NewDecl)) {
14082   if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D))
14082   if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D))
tools/clang/lib/Sema/SemaDeclCXX.cpp
 3394       auto *TD = DG->getDeducedTemplate();
 8475   if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D))
 8475   if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D))
 9150   TemplateDecl *GuidedTemplateDecl = GuidedTemplate.getAsTemplateDecl();
 9234         auto *TD = SpecifiedName.getAsTemplateDecl();
10208   if (auto *TargetTD = dyn_cast<TemplateDecl>(Target))
10208   if (auto *TargetTD = dyn_cast<TemplateDecl>(Target))
tools/clang/lib/Sema/SemaExpr.cpp
 2957   if (TemplateDecl *Template = dyn_cast<TemplateDecl>(D)) {
 2957   if (TemplateDecl *Template = dyn_cast<TemplateDecl>(D)) {
tools/clang/lib/Sema/SemaExprCXX.cpp
  320         if (TemplateDecl *SpecTemplate = SpecName.getAsTemplateDecl()) {
tools/clang/lib/Sema/SemaInit.cpp
 9686     if (auto *TD = TemplateName.getAsTemplateDecl())
tools/clang/lib/Sema/SemaLookup.cpp
  405   if (auto *DTD = dyn_cast<TemplateDecl>(DUnderlying)) {
  405   if (auto *DTD = dyn_cast<TemplateDecl>(DUnderlying)) {
  406     auto *ETD = cast<TemplateDecl>(EUnderlying);
  406     auto *ETD = cast<TemplateDecl>(EUnderlying);
 1517   if (auto *TD = dyn_cast<TemplateDecl>(ND))
 1517   if (auto *TD = dyn_cast<TemplateDecl>(ND))
 1713         if (const auto *TD = DCD->getDescribedTemplate()) {
 5292   if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D))
 5292   if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D))
tools/clang/lib/Sema/SemaOverload.cpp
10229 static TemplateDecl *getDescribedTemplate(Decl *Templated) {
10230   if (TemplateDecl *TD = Templated->getDescribedTemplate())
tools/clang/lib/Sema/SemaTemplate.cpp
   60   if (isa<TemplateDecl>(D)) {
  238     TemplateDecl *TD = cast<TemplateDecl>(D);
  238     TemplateDecl *TD = cast<TemplateDecl>(D);
  292   TemplateDecl *TD = R.getAsSingle<TemplateDecl>();
  292   TemplateDecl *TD = R.getAsSingle<TemplateDecl>();
  847 TemplateDecl *Sema::AdjustDeclIfTemplate(Decl *&D) {
  848   if (TemplateDecl *Temp = dyn_cast_or_null<TemplateDecl>(D)) {
  848   if (TemplateDecl *Temp = dyn_cast_or_null<TemplateDecl>(D)) {
 2038 void Sema::DeclareImplicitDeductionGuides(TemplateDecl *Template,
 2042     TemplateDecl *DescribedTemplate = DefRecord->getDescribedClassTemplate();
 2663       if (TemplateDecl *Template = TST->getTemplateName().getAsTemplateDecl()) {
 2800       if (TemplateDecl *Template = TST->getTemplateName().getAsTemplateDecl()) {
 2965   if (TemplateDecl *Template = Name.getAsTemplateDecl()) {
 3211   TemplateDecl *Template = Name.getAsTemplateDecl();
 3434     Name = TemplateName(Corrected.getCorrectionDeclAs<TemplateDecl>());
 4215   if (TemplateDecl *TD = Name.getAsTemplateDecl()) {
 4285   if (auto *TD = R.getAsSingle<TemplateDecl>()) {
 4285   if (auto *TD = R.getAsSingle<TemplateDecl>()) {
 4620                              TemplateDecl *Template,
 4729                              TemplateDecl *Template,
 4770 Sema::SubstDefaultTemplateArgumentIfAvailable(TemplateDecl *Template,
 5169                                     TemplateDecl *TD,
 5174   D = cast<TemplateParmDecl>(cast<TemplateDecl>(TD->getMostRecentDecl())
 5206     TemplateDecl *Template, SourceLocation TemplateLoc,
 5219       cast<TemplateDecl>(Template->getMostRecentDecl())
 6876   TemplateDecl *Template = Name.getAsTemplateDecl();
 7649     SourceLocation TemplateNameLoc, TemplateDecl *PrimaryTemplate,
 8956   TemplateDecl *TD = Name.getAsTemplateDecl();
 9935   const TemplateDecl *EnableIfDecl =
10091       if (auto *TD = getAsTypeTemplateDecl(Result.getFoundDecl())) {
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  485   TemplateDecl *ParamDecl = Param.getAsTemplateDecl();
 2599     Sema &S, TemplateDeclT *Template, bool IsDeduced,
 2655     TemplateDecl *TD = dyn_cast<TemplateDecl>(Template);
 2655     TemplateDecl *TD = dyn_cast<TemplateDecl>(Template);
 2796     Sema &S, TemplateDecl *Template, bool PartialOrdering,
 4931 static bool isSameTemplate(TemplateDecl *T1, TemplateDecl *T2) {
 4931 static bool isSameTemplate(TemplateDecl *T1, TemplateDecl *T2) {
 5050                                      TemplateLikeDecl *P2,
 5170   TemplateDecl *Primary = Spec->getSpecializedTemplate();
 5193      TemplateParameterList *P, TemplateDecl *AArg, SourceLocation Loc) {
 5326   if (TemplateDecl *Template = Name.getAsTemplateDecl()) {
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  271     TemplateDecl *Template, ArrayRef<TemplateArgument> TemplateArgs,
  295     TemplateDecl *Template,
  356     Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateDecl *Template,
  366     ConstraintsCheck, TemplateDecl *Template,
  375     ConstraintSubstitution, TemplateDecl *Template,
  534       TemplateDecl *Template = cast<TemplateDecl>(Active->Template);
  534       TemplateDecl *Template = cast<TemplateDecl>(Active->Template);
  574         if (auto *D = dyn_cast<TemplateDecl>(Active->Entity)) {
  574         if (auto *D = dyn_cast<TemplateDecl>(Active->Entity)) {
  620       if (TemplateDecl *Template = dyn_cast<TemplateDecl>(Active->Template))
  620       if (TemplateDecl *Template = dyn_cast<TemplateDecl>(Active->Template))
  639       if (TemplateDecl *Template = dyn_cast<TemplateDecl>(Active->Template))
  639       if (TemplateDecl *Template = dyn_cast<TemplateDecl>(Active->Template))
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 5442           TemplateDecl *TD = Guide->getDeducedTemplate();
tools/clang/lib/Sema/SemaType.cpp
 3137       if (auto *TD = TN.getAsTemplateDecl())
tools/clang/lib/Sema/TreeTransform.h
 1067           if (auto *TD = Deduced->getTemplateName().getAsTemplateDecl())
 1176                                    TemplateDecl *Template);
 3796     TemplateDecl *OldTemplate = Name.getCXXDeductionGuideTemplate();
 3797     TemplateDecl *NewTemplate = cast_or_null<TemplateDecl>(
 3797     TemplateDecl *NewTemplate = cast_or_null<TemplateDecl>(
 3850     TemplateDecl *Template = QTN->getTemplateDecl();
 3853     TemplateDecl *TransTemplate
 3854       = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
 3898   if (TemplateDecl *Template = Name.getAsTemplateDecl()) {
 3899     TemplateDecl *TransTemplate
 3900       = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
13141                                             TemplateDecl *Template) {
tools/clang/lib/Serialization/ASTReader.cpp
 9139                           ReadDeclAs<TemplateDecl>(F, Record, Idx));
 9223       return TemplateName(ReadDeclAs<TemplateDecl>(F, Record, Idx));
 9242     TemplateDecl *Template = ReadDeclAs<TemplateDecl>(F, Record, Idx);
 9242     TemplateDecl *Template = ReadDeclAs<TemplateDecl>(F, Record, Idx);
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  384     DeclID VisitTemplateDecl(TemplateDecl *D);
 1998 DeclID ASTDeclReader::VisitTemplateDecl(TemplateDecl *D) {
 3068   if (const auto *TemplateX = dyn_cast<TemplateDecl>(X)) {
 3068   if (const auto *TemplateX = dyn_cast<TemplateDecl>(X)) {
 3069     const auto *TemplateY = cast<TemplateDecl>(Y);
 3069     const auto *TemplateY = cast<TemplateDecl>(Y);
 3517                                             TemplateDecl *From,
 3518                                             TemplateDecl *To) {
 3561   if (auto *TD = dyn_cast<TemplateDecl>(D))
 3561   if (auto *TD = dyn_cast<TemplateDecl>(D))
 3563                                     cast<TemplateDecl>(Previous), TD);
tools/clang/lib/Serialization/ASTWriterDecl.cpp
  104     void VisitTemplateDecl(TemplateDecl *D);
 1439 void ASTDeclWriter::VisitTemplateDecl(TemplateDecl *D) {
tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
   87   TemplateDecl *TD = TM.getAsTemplateDecl();
  101   TemplateDecl *TD = TM.getAsTemplateDecl();
tools/clang/tools/extra/clang-doc/Serialize.cpp
  337       const TemplateDecl *D = Ty->getTemplateName().getAsTemplateDecl();
  452           const TemplateDecl *D = Ty->getTemplateName().getAsTemplateDecl();
tools/clang/tools/extra/clang-tidy/google/ExplicitConstructorCheck.cpp
   76     if (const TemplateDecl *TD = TS->getTemplateName().getAsTemplateDecl())
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
  132       if (const auto *TD = Used->getAsTemplate().getAsTemplateDecl())
tools/clang/tools/extra/clang-tidy/readability/IdentifierNamingCheck.cpp
  765       const auto *Decl =
  769       if (const auto *ClassDecl = dyn_cast<TemplateDecl>(Decl)) {
  769       if (const auto *ClassDecl = dyn_cast<TemplateDecl>(Decl)) {
tools/clang/tools/extra/clangd/ExpectedTypes.cpp
   50   if (auto *Template = dyn_cast<TemplateDecl>(D))
tools/clang/tools/extra/clangd/FindSymbols.cpp
  196     if (auto *Templ = llvm::dyn_cast<TemplateDecl>(D))
  196     if (auto *Templ = llvm::dyn_cast<TemplateDecl>(D))
tools/clang/tools/extra/clangd/FindTarget.cpp
  282           if (auto *TD = TST->getTemplateName().getAsTemplateDecl())
tools/clang/tools/extra/clangd/SemanticHighlighting.cpp
   40   if (auto *TD = dyn_cast<TemplateDecl>(D)) {
  211     if (const TemplateDecl *TD =
tools/clang/tools/extra/clangd/XRefs.cpp
  632   if (const TemplateDecl *TD = D->getDescribedTemplate()) {
 1201         if (TemplateDecl *TD = TN.getAsTemplateDecl()) {
tools/clang/tools/libclang/CIndex.cpp
 4518       const TemplateDecl *Template = getCursorTemplateRef(C).first;
 5835       std::pair<const TemplateDecl *, SourceLocation> P =
tools/clang/tools/libclang/CIndexCXX.cpp
   56     if (const TemplateDecl *Template
   57                            = dyn_cast_or_null<TemplateDecl>(getCursorDecl(C)))
tools/clang/tools/libclang/CXCursor.cpp
  804 CXCursor cxcursor::MakeCursorTemplateRef(const TemplateDecl *Template, 
  813 std::pair<const TemplateDecl *, SourceLocation>
tools/clang/tools/libclang/CXCursor.h
   99 CXCursor MakeCursorTemplateRef(const TemplateDecl *Template, SourceLocation Loc,
  104 std::pair<const TemplateDecl *, SourceLocation>
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
 1202   if (const TemplateDecl *Template = dyn_cast<TemplateDecl>(D))
 1202   if (const TemplateDecl *Template = dyn_cast<TemplateDecl>(D))
tools/clang/unittests/AST/ASTImporterGenericRedeclTest.cpp
  124     if (auto *PrevT = dyn_cast<TemplateDecl>(Prev)) {
  124     if (auto *PrevT = dyn_cast<TemplateDecl>(Prev)) {
  126       auto *CurrentT = cast<TemplateDecl>(Current);
  126       auto *CurrentT = cast<TemplateDecl>(Current);
  170     if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) {
  170     if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) {
  186     if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) {
  186     if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) {
  297     if (auto *ToT0 = dyn_cast<TemplateDecl>(To0)) {
  297     if (auto *ToT0 = dyn_cast<TemplateDecl>(To0)) {
tools/clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp
   85     if (isa<DeclContext>(D) || isa<TemplateDecl>(D))
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_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
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>