clang API Documentation
#include <Template.h>
Public Types | |
typedef SmallVectorImpl < std::pair< ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl * > >::iterator | delayed_partial_spec_iterator |
typedef SmallVectorImpl < std::pair< VarTemplateDecl *, VarTemplatePartialSpecializationDecl * > >::iterator | delayed_var_partial_spec_iterator |
Public Member Functions | |
TemplateDeclInstantiator (Sema &SemaRef, DeclContext *Owner, const MultiLevelTemplateArgumentList &TemplateArgs) | |
Decl * | VisitCXXMethodDecl (CXXMethodDecl *D, TemplateParameterList *TemplateParams, bool IsClassScopeSpecialization=false) |
Decl * | VisitFunctionDecl (FunctionDecl *D, TemplateParameterList *TemplateParams) |
Decl * | VisitDecl (Decl *D) |
Decl * | VisitVarDecl (VarDecl *D, bool InstantiatingVarTemplate) |
void | enableLateAttributeInstantiation (Sema::LateInstantiatedAttrVec *LA) |
void | disableLateAttributeInstantiation () |
LocalInstantiationScope * | getStartingScope () const |
delayed_partial_spec_iterator | delayed_partial_spec_begin () |
Return an iterator to the beginning of the set of "delayed" partial specializations, which must be passed to InstantiateClassTemplatePartialSpecialization once the class definition has been completed. | |
delayed_var_partial_spec_iterator | delayed_var_partial_spec_begin () |
delayed_partial_spec_iterator | delayed_partial_spec_end () |
Return an iterator to the end of the set of "delayed" partial specializations, which must be passed to InstantiateClassTemplatePartialSpecialization once the class definition has been completed. | |
delayed_var_partial_spec_iterator | delayed_var_partial_spec_end () |
TypeSourceInfo * | SubstFunctionType (FunctionDecl *D, SmallVectorImpl< ParmVarDecl * > &Params) |
bool | InitFunctionInstantiation (FunctionDecl *New, FunctionDecl *Tmpl) |
Initializes the common fields of an instantiation function declaration (New) from the corresponding fields of its template (Tmpl). | |
bool | InitMethodInstantiation (CXXMethodDecl *New, CXXMethodDecl *Tmpl) |
Initializes common fields of an instantiated method declaration (New) from the corresponding fields of its template (Tmpl). | |
TemplateParameterList * | SubstTemplateParams (TemplateParameterList *List) |
Instantiates a nested template parameter list in the current instantiation context. | |
bool | SubstQualifier (const DeclaratorDecl *OldDecl, DeclaratorDecl *NewDecl) |
bool | SubstQualifier (const TagDecl *OldDecl, TagDecl *NewDecl) |
Decl * | VisitVarTemplateSpecializationDecl (VarTemplateDecl *VarTemplate, VarDecl *FromVar, void *InsertPos, const TemplateArgumentListInfo &TemplateArgsInfo, ArrayRef< TemplateArgument > Converted) |
Decl * | InstantiateTypedefNameDecl (TypedefNameDecl *D, bool IsTypeAlias) |
ClassTemplatePartialSpecializationDecl * | InstantiateClassTemplatePartialSpecialization (ClassTemplateDecl *ClassTemplate, ClassTemplatePartialSpecializationDecl *PartialSpec) |
Instantiate the declaration of a class template partial specialization. | |
VarTemplatePartialSpecializationDecl * | InstantiateVarTemplatePartialSpecialization (VarTemplateDecl *VarTemplate, VarTemplatePartialSpecializationDecl *PartialSpec) |
Instantiate the declaration of a variable template partial specialization. | |
void | InstantiateEnumDefinition (EnumDecl *Enum, EnumDecl *Pattern) |
Definition at line 364 of file Template.h.
typedef SmallVectorImpl<std::pair<ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *> >::iterator clang::TemplateDeclInstantiator::delayed_partial_spec_iterator |
Definition at line 449 of file Template.h.
typedef SmallVectorImpl<std::pair< VarTemplateDecl *, VarTemplatePartialSpecializationDecl *> >::iterator clang::TemplateDeclInstantiator::delayed_var_partial_spec_iterator |
Definition at line 453 of file Template.h.
clang::TemplateDeclInstantiator::TemplateDeclInstantiator | ( | Sema & | SemaRef, |
DeclContext * | Owner, | ||
const MultiLevelTemplateArgumentList & | TemplateArgs | ||
) | [inline] |
Definition at line 390 of file Template.h.
delayed_partial_spec_iterator clang::TemplateDeclInstantiator::delayed_partial_spec_begin | ( | ) | [inline] |
Return an iterator to the beginning of the set of "delayed" partial specializations, which must be passed to InstantiateClassTemplatePartialSpecialization once the class definition has been completed.
Definition at line 459 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
delayed_partial_spec_iterator clang::TemplateDeclInstantiator::delayed_partial_spec_end | ( | ) | [inline] |
Return an iterator to the end of the set of "delayed" partial specializations, which must be passed to InstantiateClassTemplatePartialSpecialization once the class definition has been completed.
Definition at line 471 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
delayed_var_partial_spec_iterator clang::TemplateDeclInstantiator::delayed_var_partial_spec_begin | ( | ) | [inline] |
Definition at line 463 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
delayed_var_partial_spec_iterator clang::TemplateDeclInstantiator::delayed_var_partial_spec_end | ( | ) | [inline] |
Definition at line 475 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
void clang::TemplateDeclInstantiator::disableLateAttributeInstantiation | ( | ) | [inline] |
Definition at line 438 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
void clang::TemplateDeclInstantiator::enableLateAttributeInstantiation | ( | Sema::LateInstantiatedAttrVec * | LA | ) | [inline] |
Definition at line 432 of file Template.h.
References clang::Sema::CurrentInstantiationScope.
Referenced by clang::Sema::InstantiateClass().
LocalInstantiationScope* clang::TemplateDeclInstantiator::getStartingScope | ( | ) | const [inline] |
Definition at line 443 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
bool TemplateDeclInstantiator::InitFunctionInstantiation | ( | FunctionDecl * | New, |
FunctionDecl * | Tmpl | ||
) |
Initializes the common fields of an instantiation function declaration (New) from the corresponding fields of its template (Tmpl).
Definition at line 3163 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::ActiveTemplateInstantiations, clang::Sema::Context, clang::EST_BasicNoexcept, clang::EST_DynamicNone, clang::EST_None, clang::EST_Unevaluated, clang::EST_Uninstantiated, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::Type::getAs(), clang::FunctionProtoType::getExtProtoInfo(), clang::ASTContext::getFunctionType(), clang::Sema::getLangOpts(), clang::ASTContext::getManglingNumber(), clang::FunctionType::getNoReturnAttr(), clang::FunctionProtoType::getParamTypes(), clang::FunctionType::getReturnType(), clang::ValueDecl::getType(), clang::FunctionProtoType::hasExceptionSpec(), clang::Sema::InstantiateAttrs(), clang::FunctionDecl::isDefined(), clang::FunctionDecl::isDeleted(), clang::FunctionDecl::setDeletedAsWritten(), clang::ASTContext::setManglingNumber(), clang::ValueDecl::setType(), clang::FunctionProtoType::ExceptionSpecInfo::SourceDecl, clang::FunctionProtoType::ExceptionSpecInfo::SourceTemplate, clang::Sema::SubstExceptionSpec(), and clang::FunctionProtoType::ExceptionSpecInfo::Type.
Referenced by InitMethodInstantiation(), and VisitFunctionDecl().
bool TemplateDeclInstantiator::InitMethodInstantiation | ( | CXXMethodDecl * | New, |
CXXMethodDecl * | Tmpl | ||
) |
Initializes common fields of an instantiated method declaration (New) from the corresponding fields of its template (Tmpl).
Definition at line 3244 of file SemaTemplateInstantiateDecl.cpp.
References clang::Decl::getAccess(), InitFunctionInstantiation(), clang::FunctionDecl::isVirtualAsWritten(), clang::Decl::setAccess(), and clang::FunctionDecl::setVirtualAsWritten().
Referenced by VisitCXXMethodDecl().
Instantiate the declaration of a class template partial specialization.
ClassTemplate | the (instantiated) class template that is partially |
PartialSpec | the (uninstantiated) class template partial specialization that we are instantiating. |
Definition at line 2717 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::CheckTemplateArgumentList(), clang::Sema::Context, clang::ClassTemplatePartialSpecializationDecl::Create(), clang::Sema::Diag(), clang::ClassTemplateDecl::findPartialSpecialization(), clang::Decl::getLocation(), clang::TypeDecl::getLocStart(), clang::TagDecl::getTagKind(), clang::ASTTemplateArgumentListInfo::getTemplateArgs(), clang::ClassTemplatePartialSpecializationDecl::getTemplateArgsAsWritten(), clang::ClassTemplatePartialSpecializationDecl::getTemplateParameters(), clang::ASTContext::getTemplateSpecializationType(), clang::ASTContext::getTemplateSpecializationTypeInfo(), clang::TypeSourceInfo::getType(), clang::ASTContext::getTypeDeclType(), clang::ASTTemplateArgumentListInfo::LAngleLoc, clang::ASTTemplateArgumentListInfo::NumTemplateArgs, clang::ASTTemplateArgumentListInfo::RAngleLoc, clang::ClassTemplatePartialSpecializationDecl::setInstantiatedFromMember(), clang::ClassTemplateSpecializationDecl::setTypeAsWritten(), clang::Sema::Subst(), SubstQualifier(), and SubstTemplateParams().
Referenced by clang::Sema::InstantiateClass().
void TemplateDeclInstantiator::InstantiateEnumDefinition | ( | EnumDecl * | Enum, |
EnumDecl * | Pattern | ||
) |
Definition at line 812 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::ActOnEnumBody(), clang::DeclContext::addDecl(), clang::Sema::CheckEnumConstant(), clang::Sema::ConstantEvaluated, clang::Sema::CurrentInstantiationScope, clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::Decl::getAccess(), clang::Decl::getDeclContext(), clang::Decl::getLocation(), clang::TagDecl::getRBraceLoc(), clang::Sema::InstantiateAttrs(), clang::LocalInstantiationScope::InstantiatedLocal(), clang::DeclContext::isFunctionOrMethod(), clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), isInvalid(), clang::EnumDecl::isScoped(), clang::Decl::setAccess(), clang::Decl::setInvalidDecl(), clang::Decl::setLocation(), clang::TagDecl::startDefinition(), and clang::Sema::SubstExpr().
Referenced by clang::Sema::InstantiateEnum().
Decl * TemplateDeclInstantiator::InstantiateTypedefNameDecl | ( | TypedefNameDecl * | D, |
bool | IsTypeAlias | ||
) |
Definition at line 318 of file SemaTemplateInstantiateDecl.cpp.
References clang::Type::castAs(), clang::Sema::Context, clang::TypedefDecl::Create(), clang::TypeAliasDecl::Create(), clang::Sema::FindInstantiatedDecl(), clang::Decl::getAccess(), clang::Type::getAs(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::NamedDecl::getIdentifier(), clang::Decl::getLocation(), clang::TypeDecl::getLocStart(), clang::QualType::getNonReferenceType(), getPreviousDeclForInstantiation(), clang::Sema::getSourceManager(), clang::Sema::getStdNamespace(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::TypeSourceInfo::getType(), clang::TagDecl::getTypedefNameForAnonDecl(), clang::TypedefNameDecl::getTypeSourceInfo(), clang::DecltypeType::getUnderlyingExpr(), clang::TypedefNameDecl::getUnderlyingType(), clang::TagDecl::hasNameForLinkage(), clang::Sema::InstantiateAttrs(), clang::ASTContext::IntTy, clang::Sema::isIncompatibleTypedef(), clang::Type::isInstantiationDependentType(), clang::SourceManager::isInSystemHeader(), clang::Type::isReferenceType(), clang::IdentifierInfo::isStr(), clang::Type::isVariablyModifiedType(), clang::Sema::MarkDeclarationsReferencedInType(), clang::Decl::setInvalidDecl(), clang::TagDecl::setTypedefNameForAnonDecl(), and clang::Sema::SubstType().
VarTemplatePartialSpecializationDecl * TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization | ( | VarTemplateDecl * | VarTemplate, |
VarTemplatePartialSpecializationDecl * | PartialSpec | ||
) |
Instantiate the declaration of a variable template partial specialization.
VarTemplate | the (instantiated) variable template that is partially specialized by the instantiation of PartialSpec . |
PartialSpec | the (uninstantiated) variable template partial specialization that we are instantiating. |
Definition at line 2844 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::BuildVariableInstantiation(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::Context, clang::VarTemplatePartialSpecializationDecl::Create(), clang::Sema::Diag(), clang::VarTemplateDecl::findPartialSpecialization(), clang::NamedDecl::getDeclName(), clang::DeclaratorDecl::getInnerLocStart(), clang::Decl::getLocation(), clang::VarDecl::getStorageClass(), clang::ASTTemplateArgumentListInfo::getTemplateArgs(), clang::VarTemplatePartialSpecializationDecl::getTemplateArgsAsWritten(), clang::VarTemplatePartialSpecializationDecl::getTemplateParameters(), clang::ASTContext::getTemplateSpecializationType(), clang::ASTContext::getTemplateSpecializationTypeInfo(), clang::TypeSourceInfo::getType(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::DeclaratorDecl::getTypeSpecStartLoc(), clang::Type::isFunctionType(), clang::VarDecl::isStaticDataMember(), clang::ASTTemplateArgumentListInfo::LAngleLoc, clang::ASTTemplateArgumentListInfo::NumTemplateArgs, clang::ASTTemplateArgumentListInfo::RAngleLoc, clang::VarTemplatePartialSpecializationDecl::setInstantiatedFromMember(), clang::VarTemplateSpecializationDecl::setTypeAsWritten(), clang::Sema::Subst(), SubstQualifier(), SubstTemplateParams(), and clang::Sema::SubstType().
Referenced by clang::Sema::InstantiateClass().
TypeSourceInfo * TemplateDeclInstantiator::SubstFunctionType | ( | FunctionDecl * | D, |
SmallVectorImpl< ParmVarDecl * > & | Params | ||
) |
Definition at line 2963 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::BuildParmVarDeclForTypedef(), clang::TypeLoc::castAs(), clang::Sema::CurrentInstantiationScope, clang::TypeLoc::getAs(), clang::NamedDecl::getDeclName(), clang::Decl::getLocation(), clang::Sema::getNumArgumentsInExpansion(), clang::FunctionDecl::getNumParams(), clang::FunctionTypeLoc::getParam(), clang::FunctionProtoType::getParamType(), clang::ValueDecl::getType(), clang::TypeSourceInfo::getTypeLoc(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::DeclaratorDecl::getTypeSpecStartLoc(), clang::TypeLoc::IgnoreParens(), clang::LocalInstantiationScope::InstantiatedLocal(), clang::LocalInstantiationScope::InstantiatedLocalPackArg(), clang::ParmVarDecl::isParameterPack(), clang::LocalInstantiationScope::MakeInstantiatedLocalArgPack(), clang::FunctionDecl::param_begin(), clang::Sema::SubstFunctionDeclType(), and clang::Sema::SubstParmTypes().
Referenced by VisitCXXMethodDecl(), and VisitFunctionDecl().
bool TemplateDeclInstantiator::SubstQualifier | ( | const DeclaratorDecl * | OldDecl, |
DeclaratorDecl * | NewDecl | ||
) |
Definition at line 65 of file SemaTemplateInstantiateDecl.cpp.
Referenced by InstantiateClassTemplatePartialSpecialization(), InstantiateVarTemplatePartialSpecialization(), and SubstQualifier().
bool TemplateDeclInstantiator::SubstQualifier | ( | const TagDecl * | OldDecl, |
TagDecl * | NewDecl | ||
) |
Definition at line 70 of file SemaTemplateInstantiateDecl.cpp.
References SubstQualifier().
Instantiates a nested template parameter list in the current instantiation context.
L | The parameter list to instantiate |
Definition at line 2679 of file SemaTemplateInstantiateDecl.cpp.
References clang::TemplateParameterList::begin(), clang::Sema::Context, clang::TemplateParameterList::Create(), clang::TemplateParameterList::end(), clang::TemplateParameterList::getLAngleLoc(), clang::TemplateParameterList::getRAngleLoc(), clang::TemplateParameterList::getTemplateLoc(), clang::Decl::isInvalidDecl(), clang::TemplateParameterList::size(), and clang::declvisitor::Base< declvisitor::make_ptr, TemplateDeclInstantiator, Decl * >::Visit().
Referenced by InstantiateClassTemplatePartialSpecialization(), InstantiateVarTemplatePartialSpecialization(), and VisitCXXMethodDecl().
Decl * TemplateDeclInstantiator::VisitCXXMethodDecl | ( | CXXMethodDecl * | D, |
TemplateParameterList * | TemplateParams, | ||
bool | IsClassScopeSpecialization = false |
||
) |
Definition at line 1581 of file SemaTemplateInstantiateDecl.cpp.
References clang::DeclContext::addDecl(), clang::MultiLevelTemplateArgumentList::addOuterTemplateArguments(), adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::Sema::CheckFriendAccess(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckPureMethod(), clang::LookupResult::clear(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::FunctionTemplateDecl::Create(), clang::CXXMethodDecl::Create(), clang::CXXConstructorDecl::Create(), clang::CXXDestructorDecl::Create(), clang::CXXConversionDecl::Create(), clang::TemplateArgumentList::CreateCopy(), clang::LookupResult::empty(), clang::Sema::FindInstantiatedContext(), clang::FunctionTemplateDecl::findSpecialization(), clang::Decl::FOK_None, clang::Sema::ForRedeclaration, clang::Decl::getAccess(), clang::Decl::getDeclContext(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::Decl::getFriendObjectKind(), clang::DeclaratorDecl::getInnerLocStart(), clang::Decl::getLexicalDeclContext(), clang::Decl::getLocation(), clang::Decl::getLocEnd(), clang::FunctionDecl::getNameInfo(), clang::DeclaratorDecl::getNumTemplateParameterLists(), clang::Redeclarable< decl_type >::getPreviousDecl(), clang::DeclaratorDecl::getQualifierLoc(), clang::DeclaratorDecl::getTemplateParameterList(), InitMethodInstantiation(), clang::FunctionDecl::isConstexpr(), clang::FunctionDecl::isDeletedAsWritten(), clang::FunctionDecl::isExplicitlyDefaulted(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineSpecified(), clang::FunctionDecl::isOutOfLine(), clang::FunctionDecl::isPure(), clang::LookupResult::isSingleTagDecl(), clang::CXXMethodDecl::isStatic(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::DeclContext::makeDeclVisibleInContext(), P, Previous, clang::Sema::RequireCompleteDeclContext(), clang::SC_None, clang::SC_Static, clang::Decl::setAccess(), clang::Sema::SetDeclDefaulted(), clang::Sema::SetDeclDeleted(), clang::FunctionDecl::setImplicitlyInline(), clang::Decl::setLexicalDeclContext(), clang::Decl::setObjectOfFriendDecl(), clang::Sema::SubstDecl(), clang::Sema::SubstDeclarationNameInfo(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), and SubstTemplateParams().
Decl * TemplateDeclInstantiator::VisitDecl | ( | Decl * | D | ) |
Definition at line 2659 of file SemaTemplateInstantiateDecl.cpp.
Decl * TemplateDeclInstantiator::VisitFunctionDecl | ( | FunctionDecl * | D, |
TemplateParameterList * | TemplateParams | ||
) |
Normal class members are of more specific types and therefore don't make it here. This function serves two purposes: 1) instantiating function templates 2) substituting friend declarations
Definition at line 1306 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::adjustContextForLocalExternDecl(), adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::FunctionTemplateDecl::Create(), clang::FunctionDecl::Create(), clang::TemplateArgumentList::CreateCopy(), clang::Sema::Diag(), clang::Sema::FindInstantiatedContext(), clang::Sema::FindInstantiatedDecl(), clang::FunctionTemplateDecl::findSpecialization(), clang::Decl::FOK_None, clang::Sema::ForRedeclaration, clang::FunctionDecl::getCanonicalDecl(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::FunctionDecl::getDependentSpecializationInfo(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::SourceRange::getEnd(), clang::Decl::getFriendObjectKind(), clang::DeclaratorDecl::getInnerLocStart(), clang::Decl::getLocation(), clang::FunctionDecl::getMemberSpecializationInfo(), clang::FunctionDecl::getNameInfo(), clang::Redeclarable< decl_type >::getPreviousDecl(), clang::DeclaratorDecl::getQualifierLoc(), clang::FunctionDecl::getSourceRange(), clang::FunctionDecl::getStorageClass(), clang::FunctionDecl::getTemplateInstantiationPattern(), clang::FunctionDecl::getTemplateSpecializationKind(), clang::FunctionDecl::hasWrittenPrototype(), clang::Decl::IDNS_Ordinary, InitFunctionInstantiation(), clang::FunctionDecl::isConstexpr(), clang::FunctionDecl::isDefaulted(), clang::FunctionDecl::isDefined(), clang::DeclContext::isFileContext(), clang::DeclContext::isFunctionOrMethod(), clang::Decl::isInIdentifierNamespace(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineSpecified(), clang::Decl::isLocalExternDecl(), clang::FunctionDecl::isOutOfLine(), clang::FunctionDecl::isOverloadedOperator(), clang::DeclContext::isRecord(), clang::FunctionDecl::isThisDeclarationADefinition(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::Sema::LookupRedeclarationWithLinkage, clang::DeclContext::makeDeclVisibleInContext(), P, clang::Sema::PendingLocalImplicitInstantiations, Previous, clang::Redeclarable< decl_type >::redecls(), clang::FunctionDecl::setDescribedFunctionTemplate(), clang::FunctionDecl::setImplicitlyInline(), clang::RedeclarableTemplateDecl::setInstantiatedFromMemberTemplate(), clang::Decl::setInvalidDecl(), clang::Decl::setLexicalDeclContext(), clang::Decl::setLocalExternDecl(), clang::Decl::setNonMemberOperator(), clang::Decl::setObjectOfFriendDecl(), clang::DeclaratorDecl::setQualifierInfo(), clang::FunctionDecl::setRangeEnd(), clang::Sema::Subst(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), and clang::TSK_Undeclared.
Decl * TemplateDeclInstantiator::VisitVarDecl | ( | VarDecl * | D, |
bool | InstantiatingVarTemplate | ||
) |
Definition at line 450 of file SemaTemplateInstantiateDecl.cpp.
Decl * TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl | ( | VarTemplateDecl * | VarTemplate, |
VarDecl * | FromVar, | ||
void * | InsertPos, | ||
const TemplateArgumentListInfo & | TemplateArgsInfo, | ||
ArrayRef< TemplateArgument > | Converted | ||
) |
Definition at line 2563 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::CheckTemplateArgumentList(), clang::VarTemplateDecl::findSpecialization(), clang::TemplateArgumentListInfo::getArgumentArray(), clang::TemplateArgumentListInfo::getLAngleLoc(), clang::Decl::getLocStart(), clang::TemplateArgumentListInfo::getRAngleLoc(), clang::VarTemplateSpecializationDecl::getSpecializedTemplate(), clang::VarTemplateSpecializationDecl::getTemplateArgsInfo(), clang::TemplateArgumentListInfo::setLAngleLoc(), clang::TemplateArgumentListInfo::setRAngleLoc(), clang::TemplateArgumentListInfo::size(), and clang::Sema::Subst().