class VarTemplatePartialSpecializationDecl
Declaration
class VarTemplatePartialSpecializationDecl
: public VarTemplateSpecializationDecl { /* full declaration omitted */ };
Description
Represents a variable template specialization, which refers to a variable template with a given set of template arguments. Variable template specializations represent both explicit specializations of variable templates, as in the example below, and implicit instantiations of variable templates.
Declared at: clang/include/clang/AST/DeclTemplate.h:2952
Inherits from: VarTemplateSpecializationDecl
Member Variables
- private clang::TemplateParameterList* TemplateParams = nullptr
- The list of template parameters
- private const clang::ASTTemplateArgumentListInfo* ArgsAsWritten = nullptr
- The source info for the template arguments as written. FIXME: redundant with TypeAsWritten?
- private llvm::PointerIntPair< VarTemplatePartialSpecializationDecl*, 1, bool> InstantiatedFromMember
- The boolean value will be true to indicate that this variable template partial specialization was specialized at this level.
Inherited from VarDecl:
Inherited from Decl:
- protected NextInContextAndBits
- protected Access
- protected FromASTFile
- protected IdentifierNamespace
- protected CacheValidAndLinkage
Method Overview
- public static clang::VarTemplatePartialSpecializationDecl * Create(clang::ASTContext & Context, clang::DeclContext * DC, clang::SourceLocation StartLoc, clang::SourceLocation IdLoc, clang::TemplateParameterList * Params, clang::VarTemplateDecl * SpecializedTemplate, clang::QualType T, clang::TypeSourceInfo * TInfo, clang::StorageClass S, ArrayRef<clang::TemplateArgument> Args, const clang::TemplateArgumentListInfo & ArgInfos)
- public static clang::VarTemplatePartialSpecializationDecl * CreateDeserialized(clang::ASTContext & C, unsigned int ID)
- public static void Profile(llvm::FoldingSetNodeID & ID, ArrayRef<clang::TemplateArgument> TemplateArgs, clang::TemplateParameterList * TPL, clang::ASTContext & Context)
- public void Profile(llvm::FoldingSetNodeID & ID) const
- private VarTemplatePartialSpecializationDecl(clang::ASTContext & Context)
- private VarTemplatePartialSpecializationDecl(clang::ASTContext & Context, clang::DeclContext * DC, clang::SourceLocation StartLoc, clang::SourceLocation IdLoc, clang::TemplateParameterList * Params, clang::VarTemplateDecl * SpecializedTemplate, clang::QualType T, clang::TypeSourceInfo * TInfo, clang::StorageClass S, ArrayRef<clang::TemplateArgument> Args, const clang::ASTTemplateArgumentListInfo * ArgInfos)
- private void anchor()
- public static bool classof(const clang::Decl * D)
- public static bool classofKind(clang::Decl::Kind K)
- public void getAssociatedConstraints(llvm::SmallVectorImpl<const Expr *> & AC) const
- public clang::VarTemplatePartialSpecializationDecl * getInstantiatedFromMember() const
- public clang::VarTemplatePartialSpecializationDecl * getMostRecentDecl()
- public const clang::ASTTemplateArgumentListInfo * getTemplateArgsAsWritten() const
- public clang::TemplateParameterList * getTemplateParameters() const
- public bool hasAssociatedConstraints() const
- public bool isMemberSpecialization()
- public void setInstantiatedFromMember(clang::VarTemplatePartialSpecializationDecl * PartialSpec)
- public void setMemberSpecialization()
Inherited from VarTemplateSpecializationDecl:
- public Create
- public CreateDeserialized
- public Profile
- public Profile
- public classof
- public classofKind
- public getExternLoc
- public getInstantiatedFrom
- public getMostRecentDecl
- public getNameForDiagnostic
- public getPointOfInstantiation
- public getSpecializationKind
- public getSpecializedTemplate
- public getSpecializedTemplateOrPartial
- public getTemplateArgs
- public getTemplateArgsInfo
- public getTemplateInstantiationArgs
- public getTemplateKeywordLoc
- public getTypeAsWritten
- public isClassScopeExplicitSpecialization
- public isExplicitInstantiationOrSpecialization
- public isExplicitSpecialization
- public setCompleteDefinition
- public setExternLoc
- public setInstantiationOf
- public setInstantiationOf
- public setPointOfInstantiation
- public setSpecializationKind
- public setTemplateArgsInfo
- public setTemplateArgsInfo
- public setTemplateKeywordLoc
- public setTypeAsWritten
Inherited from FoldingSetBase::Node:
Inherited from VarDecl:
- public Create
- public CreateDeserialized
- public checkForConstantInitialization
- public classof
- public classofKind
- public demoteThisDefinitionToDeclaration
- public ensureEvaluatedStmt
- public evaluateDestruction
- public evaluateValue
- public getActingDefinition
- public getActingDefinition
- public getAnyInitializer
- public getAnyInitializer
- public getCanonicalDecl
- public getCanonicalDecl
- public getDefinition
- public getDefinition
- public getDefinition
- public getDefinition
- public getDescribedVarTemplate
- public getEvaluatedStmt
- public getEvaluatedValue
- public getFlexibleArrayInitChars
- public getInit
- public getInit
- public getInitAddress
- public getInitStyle
- public getInitializingDeclaration
- public getInitializingDeclaration
- public getInstantiatedFromStaticDataMember
- public getLanguageLinkage
- public getMemberSpecializationInfo
- protected getMostRecentDeclImpl
- protected getNextRedeclarationImpl
- public getPointOfInstantiation
- protected getPreviousDeclImpl
- public getSourceRange
- public getStorageClass
- public getStorageClassSpecifierString
- public getStorageDuration
- public getTLSKind
- public getTSCSpec
- public getTemplateInstantiationPattern
- public getTemplateSpecializationKind
- public getTemplateSpecializationKindForInstantiation
- public hasConstantInitialization
- public hasDefinition
- public hasDefinition
- public hasDependentAlignment
- public hasExternalStorage
- public hasFlexibleArrayInit
- public hasGlobalStorage
- public hasICEInitializer
- public hasInit
- public hasLocalStorage
- public isARCPseudoStrong
- public isCXXForRangeDecl
- public isConstexpr
- public isDirectInit
- public isEscapingByref
- public isExceptionVariable
- public isExternC
- public isFileVarDecl
- public isFunctionOrMethodVarDecl
- public isInExternCContext
- public isInExternCXXContext
- public isInitCapture
- public isInline
- public isInlineSpecified
- public isKnownToBeDefined
- public isLocalVarDecl
- public isLocalVarDeclOrParm
- public isNRVOVariable
- public isNoDestroy
- public isNonEscapingByref
- public isObjCForDecl
- public isOutOfLine
- public isParameterPack
- public isPreviousDeclInSameBlockScope
- public isStaticDataMember
- public isStaticLocal
- public isThisDeclarationADefinition
- public isThisDeclarationADefinition
- public isThisDeclarationADemotedDefinition
- public isUsableInConstantExpressions
- public mightBeUsableInConstantExpressions
- public needsDestruction
- public setARCPseudoStrong
- public setCXXForRangeDecl
- public setConstexpr
- public setDescribedVarTemplate
- public setEscapingByref
- public setExceptionVariable
- public setImplicitlyInline
- public setInit
- public setInitCapture
- public setInitStyle
- public setInlineSpecified
- public setInstantiationOfStaticDataMember
- public setNRVOVariable
- public setObjCForDecl
- public setPreviousDeclInSameBlockScope
- public setStorageClass
- public setTSCSpec
- public setTemplateSpecializationKind
Inherited from DeclaratorDecl:
- public classof
- public classofKind
- public getBeginLoc
- public getInnerLocStart
- public getNumTemplateParameterLists
- public getOuterLocStart
- public getQualifier
- public getQualifierLoc
- public getSourceRange
- public getTemplateParameterList
- public getTrailingRequiresClause
- public getTrailingRequiresClause
- public getTypeSourceInfo
- public getTypeSpecEndLoc
- public getTypeSpecStartLoc
- public setInnerLocStart
- public setQualifierInfo
- public setTemplateParameterListsInfo
- public setTrailingRequiresClause
- public setTypeSourceInfo
Inherited from ValueDecl:
Inherited from NamedDecl:
- public classof
- public classofKind
- public declarationReplaces
- public getDeclName
- public getExplicitVisibility
- public getFormalLinkage
- public getIdentifier
- public getLinkageAndVisibility
- public getLinkageInternal
- public getMostRecentDecl
- public getMostRecentDecl
- public getName
- public getNameAsString
- public getNameForDiagnostic
- public getObjCFStringFormattingFamily
- public getQualifiedNameAsString
- public getUnderlyingDecl
- public getUnderlyingDecl
- public getVisibility
- public hasExternalFormalLinkage
- public hasLinkage
- public hasLinkageBeenComputed
- public isCXXClassMember
- public isCXXInstanceMember
- public isExternallyDeclarable
- public isExternallyVisible
- public isLinkageValid
- public isReserved
- public printName
- public printNestedNameSpecifier
- public printNestedNameSpecifier
- public printQualifiedName
- public printQualifiedName
- public setDeclName
Inherited from Decl:
- public EnableStatistics
- public PrintStats
- public add
- public addAttr
- public attr_begin
- public attr_end
- public attrs
- public canBeWeakImported
- public castFromDeclContext
- public castToDeclContext
- public classofKind
- public dropAttr
- public dropAttrs
- public dump
- public dump
- public dumpColor
- public getASTContext
- protected getASTMutationListener
- public getAccess
- public getAccessUnsafe
- public getAsFunction
- public getAsFunction
- public getAttr
- public getAttrs
- public getAttrs
- public getAvailability
- public getBeginLoc
- public getBody
- public getBodyRBrace
- protected getCachedLinkage
- public getCanonicalDecl
- public getCanonicalDecl
- public getDeclContext
- public getDeclContext
- public getDeclKindName
- public getDefiningAttr
- public getDescribedTemplate
- public getDescribedTemplateParams
- public getEndLoc
- public getExternalSourceSymbolAttr
- public getFriendObjectKind
- public getFunctionType
- public getGlobalID
- public getID
- public getIdentifierNamespace
- public getIdentifierNamespaceForKind
- public getImportedOwningModule
- public getKind
- public getLangOpts
- public getLexicalDeclContext
- public getLexicalDeclContext
- public getLocalOwningModule
- public getLocation
- public getMaxAlignment
- public getModuleOwnershipKind
- public getMostRecentDecl
- public getMostRecentDecl
- protected getMostRecentDeclImpl
- public getNextDeclInContext
- public getNextDeclInContext
- protected getNextRedeclarationImpl
- public getNonClosureContext
- public getNonClosureContext
- public getOwningModule
- public getOwningModuleForLinkage
- public getOwningModuleID
- public getParentFunctionOrMethod
- public getParentFunctionOrMethod
- public getPreviousDecl
- public getPreviousDecl
- protected getPreviousDeclImpl
- public getSourceRange
- public getTemplateDepth
- public getTranslationUnitDecl
- public getTranslationUnitDecl
- public getVersionIntroduced
- public hasAttr
- public hasAttrs
- public hasBody
- protected hasCachedLinkage
- public hasDefiningAttr
- protected hasLocalOwningModuleStorage
- public hasOwningModule
- public hasTagIdentifierNamespace
- public isCanonicalDecl
- public isDefinedOutsideFunctionOrMethod
- public isDeprecated
- public isDiscardedInGlobalModuleFragment
- public isFirstDecl
- public isFromASTFile
- public isFunctionOrFunctionTemplate
- public isImplicit
- public isInAnonymousNamespace
- public isInExportDeclContext
- public isInIdentifierNamespace
- public isInLocalScopeForInstantiation
- public isInStdNamespace
- public isInvalidDecl
- public isInvisibleOutsideTheOwningModule
- public isLocalExternDecl
- public isModulePrivate
- public isOutOfLine
- public isParameterPack
- public isReachable
- public isReferenced
- public isTagIdentifierNamespace
- public isTemplateDecl
- public isTemplateParameter
- public isTemplateParameterPack
- public isTemplated
- public isThisDeclarationReferenced
- public isTopLevelDeclInObjCContainer
- public isUnavailable
- public isUnconditionallyVisible
- public isUsed
- public isWeakImported
- public markUsed
- public print
- public print
- public printGroup
- public redecls
- public redecls_begin
- public redecls_end
- public setAccess
- public setAttrs
- protected setCachedLinkage
- public setDeclContext
- public setFromASTFile
- public setImplicit
- public setInvalidDecl
- public setIsUsed
- public setLexicalDeclContext
- public setLocalExternDecl
- public setLocalOwningModule
- public setLocation
- public setModuleOwnershipKind
- protected setModulePrivate
- public setNonMemberOperator
- public setObjectOfFriendDecl
- public setOwningModuleID
- public setReferenced
- public setTopLevelDeclInObjCContainer
- public setVisibleDespiteOwningModule
- public specific_attr_begin
- public specific_attr_end
- public specific_attrs
- protected updateOutOfDate
Methods
¶static clang::
VarTemplatePartialSpecializationDecl*
Create(clang::ASTContext& Context,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::TemplateParameterList* Params,
clang::VarTemplateDecl*
SpecializedTemplate,
clang::QualType T,
clang::TypeSourceInfo* TInfo,
clang::StorageClass S,
ArrayRef<clang::TemplateArgument> Args,
const clang::TemplateArgumentListInfo&
ArgInfos)
static clang::
VarTemplatePartialSpecializationDecl*
Create(clang::ASTContext& Context,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::TemplateParameterList* Params,
clang::VarTemplateDecl*
SpecializedTemplate,
clang::QualType T,
clang::TypeSourceInfo* TInfo,
clang::StorageClass S,
ArrayRef<clang::TemplateArgument> Args,
const clang::TemplateArgumentListInfo&
ArgInfos)
Declared at: clang/include/clang/AST/DeclTemplate.h:2988
Parameters
- clang::ASTContext& Context
- clang::DeclContext* DC
- clang::SourceLocation StartLoc
- clang::SourceLocation IdLoc
- clang::TemplateParameterList* Params
- clang::VarTemplateDecl* SpecializedTemplate
- clang::QualType T
- clang::TypeSourceInfo* TInfo
- clang::StorageClass S
- ArrayRef<clang::TemplateArgument> Args
- const clang::TemplateArgumentListInfo& ArgInfos
¶static clang::
VarTemplatePartialSpecializationDecl*
CreateDeserialized(clang::ASTContext& C,
unsigned int ID)
static clang::
VarTemplatePartialSpecializationDecl*
CreateDeserialized(clang::ASTContext& C,
unsigned int ID)
Declared at: clang/include/clang/AST/DeclTemplate.h:2994
Parameters
- clang::ASTContext& C
- unsigned int ID
¶static void Profile(
llvm::FoldingSetNodeID& ID,
ArrayRef<clang::TemplateArgument>
TemplateArgs,
clang::TemplateParameterList* TPL,
clang::ASTContext& Context)
static void Profile(
llvm::FoldingSetNodeID& ID,
ArrayRef<clang::TemplateArgument>
TemplateArgs,
clang::TemplateParameterList* TPL,
clang::ASTContext& Context)
Declared at: clang/include/clang/AST/DeclTemplate.h:3095
Parameters
- llvm::FoldingSetNodeID& ID
- ArrayRef<clang::TemplateArgument> TemplateArgs
- clang::TemplateParameterList* TPL
- clang::ASTContext& Context
¶void Profile(llvm::FoldingSetNodeID& ID) const
void Profile(llvm::FoldingSetNodeID& ID) const
Declared at: clang/include/clang/AST/DeclTemplate.h:3089
Parameters
¶VarTemplatePartialSpecializationDecl(
clang::ASTContext& Context)
VarTemplatePartialSpecializationDecl(
clang::ASTContext& Context)
Declared at: clang/include/clang/AST/DeclTemplate.h:2976
Parameters
- clang::ASTContext& Context
¶VarTemplatePartialSpecializationDecl(
clang::ASTContext& Context,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::TemplateParameterList* Params,
clang::VarTemplateDecl* SpecializedTemplate,
clang::QualType T,
clang::TypeSourceInfo* TInfo,
clang::StorageClass S,
ArrayRef<clang::TemplateArgument> Args,
const clang::ASTTemplateArgumentListInfo*
ArgInfos)
VarTemplatePartialSpecializationDecl(
clang::ASTContext& Context,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::TemplateParameterList* Params,
clang::VarTemplateDecl* SpecializedTemplate,
clang::QualType T,
clang::TypeSourceInfo* TInfo,
clang::StorageClass S,
ArrayRef<clang::TemplateArgument> Args,
const clang::ASTTemplateArgumentListInfo*
ArgInfos)
Declared at: clang/include/clang/AST/DeclTemplate.h:2969
Parameters
- clang::ASTContext& Context
- clang::DeclContext* DC
- clang::SourceLocation StartLoc
- clang::SourceLocation IdLoc
- clang::TemplateParameterList* Params
- clang::VarTemplateDecl* SpecializedTemplate
- clang::QualType T
- clang::TypeSourceInfo* TInfo
- clang::StorageClass S
- ArrayRef<clang::TemplateArgument> Args
- const clang::ASTTemplateArgumentListInfo* ArgInfos
¶void anchor()
void anchor()
Declared at: clang/include/clang/AST/DeclTemplate.h:2981
¶static bool classof(const clang::Decl* D)
static bool classof(const clang::Decl* D)
Declared at: clang/include/clang/AST/DeclTemplate.h:3098
Parameters
- const clang::Decl* D
¶static bool classofKind(clang::Decl::Kind K)
static bool classofKind(clang::Decl::Kind K)
Declared at: clang/include/clang/AST/DeclTemplate.h:3100
Parameters
- clang::Decl::Kind K
¶void getAssociatedConstraints(
llvm::SmallVectorImpl<const Expr*>& AC) const
void getAssociatedConstraints(
llvm::SmallVectorImpl<const Expr*>& AC) const
Description
All associated constraints of this partial specialization, including the requires clause and any constraints derived from constrained-parameters.
The constraints in the resulting list are to be treated as if in a conjunction ("and").
Declared at: clang/include/clang/AST/DeclTemplate.h:3019
Parameters
- llvm::SmallVectorImpl<const Expr*>& AC
¶clang::VarTemplatePartialSpecializationDecl*
getInstantiatedFromMember() const
clang::VarTemplatePartialSpecializationDecl*
getInstantiatedFromMember() const
Description
Retrieve the member variable template partial specialization from which this particular variable template partial specialization was instantiated.
In this example, the instantiation of \c Outer<float>::Inner<int*> will end up instantiating the partial specialization\c Outer<float>::Inner<U*>, which itself was instantiated from the variable template partial specialization \c Outer<T>::Inner<U*>. Given\c Outer<float>::Inner<U*>, this function would return\c Outer<T>::Inner<U*>.
Declared at: clang/include/clang/AST/DeclTemplate.h:3047
¶clang::VarTemplatePartialSpecializationDecl*
getMostRecentDecl()
clang::VarTemplatePartialSpecializationDecl*
getMostRecentDecl()
Declared at: clang/include/clang/AST/DeclTemplate.h:2997
¶const clang::ASTTemplateArgumentListInfo*
getTemplateArgsAsWritten() const
const clang::ASTTemplateArgumentListInfo*
getTemplateArgsAsWritten() const
Description
Get the template arguments as written.
Declared at: clang/include/clang/AST/DeclTemplate.h:3009
¶clang::TemplateParameterList*
getTemplateParameters() const
clang::TemplateParameterList*
getTemplateParameters() const
Description
Get the list of template parameters
Declared at: clang/include/clang/AST/DeclTemplate.h:3004
¶bool hasAssociatedConstraints() const
bool hasAssociatedConstraints() const
Declared at: clang/include/clang/AST/DeclTemplate.h:3023
¶bool isMemberSpecialization()
bool isMemberSpecialization()
Description
Determines whether this variable template partial specialization was a specialization of a member partial specialization. In the following example, the member template partial specialization\c X<int>::Inner<T*> is a member specialization.
Declared at: clang/include/clang/AST/DeclTemplate.h:3075
¶void setInstantiatedFromMember(
clang::VarTemplatePartialSpecializationDecl*
PartialSpec)
void setInstantiatedFromMember(
clang::VarTemplatePartialSpecializationDecl*
PartialSpec)
Declared at: clang/include/clang/AST/DeclTemplate.h:3054
Parameters
- clang::VarTemplatePartialSpecializationDecl* PartialSpec
¶void setMemberSpecialization()
void setMemberSpecialization()
Description
Note that this member template is a specialization.
Declared at: clang/include/clang/AST/DeclTemplate.h:3082