Lines Matching defs:Template

1 //===------- SemaTemplateInstantiate.cpp - C++ Template Instantiation ------===/
35 #include "clang/Sema/Template.h"
49 // Template Instantiation Support
113 TypeAliasTemplateDecl *Template = nullptr;
117 explicit operator bool() noexcept { return Template; }
132 /*Template=*/TATD,
430 Result.addOuterTemplateArguments(TypeAlias.Template,
446 return Response::ChangeDecl(TypeAlias.Template->getDeclContext());
591 Decl *Entity, NamedDecl *Template, ArrayRef<TemplateArgument> TemplateArgs,
608 Inst.Template = Template;
639 TemplateDecl *Template, ArrayRef<TemplateArgument> TemplateArgs,
645 Template, TemplateArgs) {}
663 TemplateDecl *Template,
669 PointOfInstantiation, InstantiationRange, Template, nullptr,
704 Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template,
710 PointOfInstantiation, InstantiationRange, Param, Template,
714 Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template,
720 PointOfInstantiation, InstantiationRange, Param, Template,
730 /*Template=*/nullptr, TemplateArgs) {}
733 Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateDecl *Template,
738 PointOfInstantiation, InstantiationRange, Param, Template,
748 /*Template=*/nullptr, /*TemplateArgs=*/{}, &DeductionInfo) {}
757 /*Template=*/nullptr, /*TemplateArgs=*/{}) {}
765 /*Template=*/nullptr, /*TemplateArgs=*/{}, &DeductionInfo) {}
769 ConstraintsCheck, NamedDecl *Template,
773 PointOfInstantiation, InstantiationRange, Template, nullptr,
778 ConstraintSubstitution, NamedDecl *Template,
782 PointOfInstantiation, InstantiationRange, Template, nullptr,
787 ConstraintNormalization, NamedDecl *Template,
791 PointOfInstantiation, InstantiationRange, Template) {}
795 ParameterMappingSubstitution, NamedDecl *Template,
799 PointOfInstantiation, InstantiationRange, Template) {}
976 TemplateDecl *Template = cast<TemplateDecl>(Active->Template);
979 Template->printName(OS, getPrintingPolicy());
1062 if (TemplateDecl *Template = dyn_cast<TemplateDecl>(Active->Template))
1063 TemplateParams = Template->getTemplateParameters();
1066 cast<ClassTemplatePartialSpecializationDecl>(Active->Template)
1081 if (TemplateDecl *Template = dyn_cast<TemplateDecl>(Active->Template))
1082 TemplateParams = Template->getTemplateParameters();
1085 cast<ClassTemplatePartialSpecializationDecl>(Active->Template)
1351 // Template Instantiation for Types
1702 unsigned TypeAliasDeclDepth = TypeAlias.Template->getTemplateDepth();
1897 TemplateName Template = Arg.getAsTemplate();
1898 assert(!Template.isNull() && Template.getAsTemplateDecl() &&
1900 return Template.getAsTemplateDecl();
2048 assert(Arg.getKind() == TemplateArgument::Template &&
2072 TemplateName Template = Arg.getAsTemplate();
2073 assert(!Template.isNull() && "Null template template argument");
2076 return Template;
2078 Template, AssociatedDecl, TTP->getIndex(), PackIndex);
2088 TemplateName Template =
2091 return Template;
2093 Template, SubstPack->getAssociatedDecl(), SubstPack->getIndex(),
2631 "Template argument kind mismatch");
4074 ClassTemplateDecl *Template = ClassTemplateSpec->getSpecializedTemplate();
4087 Template->getPartialSpecializations(PartialSpecs);
4100 if (Template->getMostRecentDecl()->isMemberSpecialization() &&
4111 DeclAccessPair::make(Template, AS_public), Partial,
4206 ClassTemplateDecl *Template = ClassTemplateSpec->getSpecializedTemplate();
4207 while (Template->getInstantiatedFromMemberTemplate()) {
4210 if (Template->isMemberSpecialization())
4213 Template = Template->getInstantiatedFromMemberTemplate();
4215 Pattern = Template->getTemplatedDecl();