class ClassTemplateSpecializationDecl
Declaration
class ClassTemplateSpecializationDecl : public CXXRecordDecl,
public Node { /* full declaration omitted */ };
Description
Represents a class template specialization, which refers to a class template with a given set of template arguments. Class template specializations represent both explicit specialization of class templates, as in the example below, and implicit instantiations of class templates.
Declared at: clang/include/clang/AST/DeclTemplate.h:1829
Inherits from: CXXRecordDecl, FoldingSetBase::Node
Member Variables
- private llvm::PointerUnion< ClassTemplateDecl*, SpecializedPartialSpecialization*> SpecializedTemplate
- The template that this specialization specializes
- private clang::ClassTemplateSpecializationDecl:: ExplicitSpecializationInfo* ExplicitInfo = nullptr
- Further info for explicit template specialization/instantiation. Does not apply to implicit specializations.
- private const clang::TemplateArgumentList* TemplateArgs
- The template arguments used to describe this specialization.
- private clang::SourceLocation PointOfInstantiation
- The point where this template was instantiated (if any)
- private unsigned int SpecializationKind
- The kind of specialization this declaration refers to. Really a value of type TemplateSpecializationKind.
Inherited from DeclContext:
- protected
- protected FirstDecl = nullptr
- protected LastDecl = nullptr
Inherited from Decl:
- protected NextInContextAndBits
- protected Access
- protected FromASTFile
- protected IdentifierNamespace
- protected CacheValidAndLinkage
Method Overview
- protected ClassTemplateSpecializationDecl(clang::ASTContext & C, clang::Decl::Kind DK)
- protected ClassTemplateSpecializationDecl(clang::ASTContext & Context, clang::Decl::Kind DK, clang::TagDecl::TagKind TK, clang::DeclContext * DC, clang::SourceLocation StartLoc, clang::SourceLocation IdLoc, clang::ClassTemplateDecl * SpecializedTemplate, ArrayRef<clang::TemplateArgument> Args, clang::ClassTemplateSpecializationDecl * PrevDecl)
- public static clang::ClassTemplateSpecializationDecl * Create(clang::ASTContext & Context, clang::TagDecl::TagKind TK, clang::DeclContext * DC, clang::SourceLocation StartLoc, clang::SourceLocation IdLoc, clang::ClassTemplateDecl * SpecializedTemplate, ArrayRef<clang::TemplateArgument> Args, clang::ClassTemplateSpecializationDecl * PrevDecl)
- public static clang::ClassTemplateSpecializationDecl * CreateDeserialized(clang::ASTContext & C, unsigned int ID)
- public static void Profile(llvm::FoldingSetNodeID & ID, ArrayRef<clang::TemplateArgument> TemplateArgs, clang::ASTContext & Context)
- public void Profile(llvm::FoldingSetNodeID & ID) const
- public static bool classof(const clang::Decl * D)
- public static bool classofKind(clang::Decl::Kind K)
- public clang::SourceLocation getExternLoc() const
- public llvm::PointerUnion<ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *> getInstantiatedFrom() const
- public clang::ClassTemplateSpecializationDecl * getMostRecentDecl()
- public void getNameForDiagnostic(llvm::raw_ostream & OS, const clang::PrintingPolicy & Policy, bool Qualified) const
- public clang::SourceLocation getPointOfInstantiation() const
- public clang::SourceRange getSourceRange() const
- public clang::TemplateSpecializationKind getSpecializationKind() const
- public clang::ClassTemplateDecl * getSpecializedTemplate() const
- public llvm::PointerUnion<ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *> getSpecializedTemplateOrPartial() const
- public const clang::TemplateArgumentList & getTemplateArgs() const
- public const clang::TemplateArgumentList & getTemplateInstantiationArgs() const
- public clang::SourceLocation getTemplateKeywordLoc() const
- public clang::TypeSourceInfo * getTypeAsWritten() const
- public bool isClassScopeExplicitSpecialization() const
- public bool isExplicitInstantiationOrSpecialization() const
- public bool isExplicitSpecialization() const
- public void setExternLoc(clang::SourceLocation Loc)
- public void setInstantiationOf(clang::ClassTemplatePartialSpecializationDecl * PartialSpec, const clang::TemplateArgumentList * TemplateArgs)
- public void setInstantiationOf(clang::ClassTemplateDecl * TemplDecl)
- public void setPointOfInstantiation(clang::SourceLocation Loc)
- public void setSpecializationKind(clang::TemplateSpecializationKind TSK)
- public void setSpecializedTemplate(clang::ClassTemplateDecl * Specialized)
- public void setTemplateArgs(clang::TemplateArgumentList * Args)
- public void setTemplateKeywordLoc(clang::SourceLocation Loc)
- public void setTypeAsWritten(clang::TypeSourceInfo * T)
Inherited from FoldingSetBase::Node:
Inherited from CXXRecordDecl:
- public Create
- public CreateDeserialized
- public CreateLambda
- public FindBaseClass
- public FindVirtualBaseClass
- public MergeAccess
- public addedEligibleSpecialMemberFunction
- public addedSelectedDestructor
- public allowConstDefaultInit
- public bases
- public bases
- public bases_begin
- public bases_begin
- public bases_end
- public bases_end
- public calculateInheritanceModel
- public capture_size
- public captures
- public captures_begin
- public captures_end
- public classof
- public classofKind
- public completeDefinition
- public completeDefinition
- public conversion_begin
- public conversion_end
- public ctor_begin
- public ctor_end
- public ctors
- public defaultedCopyConstructorIsDeleted
- public defaultedDefaultConstructorIsConstexpr
- public defaultedDestructorIsConstexpr
- public defaultedDestructorIsDeleted
- public defaultedMoveConstructorIsDeleted
- public finishedDefaultedOrDeletedMember
- public forallBases
- public friend_begin
- public friend_end
- public friends
- public getCanonicalDecl
- public getCanonicalDecl
- public getCaptureFields
- public getDefinition
- public getDependentLambdaCallOperator
- public getDescribedClassTemplate
- public getDestructor
- public getDeviceLambdaManglingNumber
- public getFinalOverriders
- public getGenericLambdaTemplateParameterList
- public getIndirectPrimaryBases
- public getInstantiatedFromMemberClass
- public getLambdaCallOperator
- public getLambdaCaptureDefault
- public getLambdaContextDecl
- public getLambdaDependencyKind
- public getLambdaExplicitTemplateParameters
- public getLambdaManglingNumber
- public getLambdaStaticInvoker
- public getLambdaStaticInvoker
- public getLambdaTypeInfo
- public getMSInheritanceModel
- public getMSVtorDispMode
- public getMemberSpecializationInfo
- public getMostRecentDecl
- public getMostRecentDecl
- public getMostRecentNonInjectedDecl
- public getMostRecentNonInjectedDecl
- public getNumBases
- public getNumVBases
- public getODRHash
- public getPreviousDecl
- public getPreviousDecl
- public getTemplateInstantiationPattern
- public getTemplateInstantiationPattern
- public getTemplateSpecializationKind
- public getVisibleConversionFunctions
- public hasAnyDependentBases
- public hasConstexprDefaultConstructor
- public hasConstexprDestructor
- public hasConstexprNonCopyMoveConstructor
- public hasCopyAssignmentWithConstParam
- public hasCopyConstructorWithConstParam
- public hasDefaultConstructor
- public hasDefinition
- public hasDirectFields
- public hasFriends
- public hasInClassInitializer
- public hasInheritedAssignment
- public hasInheritedConstructor
- public hasInitMethod
- public hasIrrelevantDestructor
- public hasKnownLambdaInternalLinkage
- public hasMemberName
- public hasMoveAssignment
- public hasMoveConstructor
- public hasMutableFields
- public hasNonLiteralTypeFieldsOrBases
- public hasNonTrivialCopyAssignment
- public hasNonTrivialCopyConstructor
- public hasNonTrivialCopyConstructorForCall
- public hasNonTrivialDefaultConstructor
- public hasNonTrivialDestructor
- public hasNonTrivialDestructorForCall
- public hasNonTrivialMoveAssignment
- public hasNonTrivialMoveConstructor
- public hasNonTrivialMoveConstructorForCall
- public hasPrivateFields
- public hasProtectedFields
- public hasSimpleCopyAssignment
- public hasSimpleCopyConstructor
- public hasSimpleDestructor
- public hasSimpleMoveAssignment
- public hasSimpleMoveConstructor
- public hasTrivialCopyAssignment
- public hasTrivialCopyConstructor
- public hasTrivialCopyConstructorForCall
- public hasTrivialDefaultConstructor
- public hasTrivialDestructor
- public hasTrivialDestructorForCall
- public hasTrivialMoveAssignment
- public hasTrivialMoveConstructor
- public hasTrivialMoveConstructorForCall
- public hasUninitializedReferenceMember
- public hasUserDeclaredConstructor
- public hasUserDeclaredCopyAssignment
- public hasUserDeclaredCopyConstructor
- public hasUserDeclaredDestructor
- public hasUserDeclaredMoveAssignment
- public hasUserDeclaredMoveConstructor
- public hasUserDeclaredMoveOperation
- public hasUserProvidedDefaultConstructor
- public hasVariantMembers
- public implicitCopyAssignmentHasConstParam
- public implicitCopyConstructorHasConstParam
- public isAbstract
- public isAggregate
- public isAnyDestructorNoReturn
- public isCLike
- public isCXX11StandardLayout
- public isCurrentInstantiation
- public isDependentLambda
- public isDerivedFrom
- public isDerivedFrom
- public isDynamicClass
- public isEffectivelyFinal
- public isEmpty
- public isGenericLambda
- public isInterfaceLike
- public isLambda
- public isLiteral
- public isLocalClass
- public isLocalClass
- public isNeverDependentLambda
- public isPOD
- public isParsingBaseSpecifiers
- public isPolymorphic
- public isProvablyNotDerivedFrom
- public isStandardLayout
- public isStructural
- public isTrivial
- public isTriviallyCopyable
- public isVirtuallyDerivedFrom
- public lambdaIsDefaultConstructibleAndAssignable
- public lookupDependentName
- public lookupInBases
- public markAbstract
- public mayBeAbstract
- public mayBeDynamicClass
- public mayBeNonDynamicClass
- public method_begin
- public method_end
- public methods
- public needsImplicitCopyAssignment
- public needsImplicitCopyConstructor
- public needsImplicitDefaultConstructor
- public needsImplicitDestructor
- public needsImplicitMoveAssignment
- public needsImplicitMoveConstructor
- public needsOverloadResolutionForCopyAssignment
- public needsOverloadResolutionForCopyConstructor
- public needsOverloadResolutionForDestructor
- public needsOverloadResolutionForMoveAssignment
- public needsOverloadResolutionForMoveConstructor
- public nullFieldOffsetIsZero
- public pushFriendDecl
- public removeConversion
- public setBases
- public setCaptures
- public setDescribedClassTemplate
- public setDeviceLambdaManglingNumber
- public setHasTrivialSpecialMemberForCall
- public setImplicitCopyAssignmentIsDeleted
- public setImplicitCopyConstructorIsDeleted
- public setImplicitDestructorIsDeleted
- public setImplicitMoveAssignmentIsDeleted
- public setImplicitMoveConstructorIsDeleted
- public setInitMethod
- public setInstantiationOfMemberClass
- public setIsParsingBaseSpecifiers
- public setLambdaMangling
- public setTemplateSpecializationKind
- public setTrivialForCallFlags
- public vbases
- public vbases
- public vbases_begin
- public vbases_begin
- public vbases_end
- public vbases_end
- public viewInheritance
Inherited from RecordDecl:
- public Create
- public CreateDeserialized
- public canPassInRegisters
- public classof
- public classofKind
- public completeDefinition
- public field_begin
- public field_empty
- public field_end
- public fields
- public findFirstNamedDataMember
- public getArgPassingRestrictions
- public getDefinition
- public getMostRecentDecl
- public getMostRecentDecl
- public getPreviousDecl
- public getPreviousDecl
- public hasFlexibleArrayMember
- public hasLoadedFieldsFromExternalStorage
- public hasNonTrivialToPrimitiveCopyCUnion
- public hasNonTrivialToPrimitiveDefaultInitializeCUnion
- public hasNonTrivialToPrimitiveDestructCUnion
- public hasObjectMember
- public hasVolatileMember
- public isAnonymousStructOrUnion
- public isCapturedRecord
- public isInjectedClassName
- public isLambda
- public isMsStruct
- public isNonTrivialToPrimitiveCopy
- public isNonTrivialToPrimitiveDefaultInitialize
- public isNonTrivialToPrimitiveDestroy
- public isOrContainsUnion
- public isParamDestroyedInCallee
- public isRandomized
- public mayInsertExtraPadding
- public reorderDecls
- public setAnonymousStructOrUnion
- public setArgPassingRestrictions
- public setCapturedRecord
- public setHasFlexibleArrayMember
- public setHasLoadedFieldsFromExternalStorage
- public setHasNonTrivialToPrimitiveCopyCUnion
- public setHasNonTrivialToPrimitiveDefaultInitializeCUnion
- public setHasNonTrivialToPrimitiveDestructCUnion
- public setHasObjectMember
- public setHasVolatileMember
- public setIsRandomized
- public setNonTrivialToPrimitiveCopy
- public setNonTrivialToPrimitiveDefaultInitialize
- public setNonTrivialToPrimitiveDestroy
- public setParamDestroyedInCallee
Inherited from TagDecl:
- public castFromDeclContext
- public castToDeclContext
- public classof
- public classofKind
- protected completeDefinition
- public demoteThisDefinitionToDeclaration
- public getBraceRange
- public getCanonicalDecl
- public getCanonicalDecl
- public getDefinition
- public getInnerLocStart
- public getKindName
- protected getMostRecentDeclImpl
- protected getNextRedeclarationImpl
- public getNumTemplateParameterLists
- public getOuterLocStart
- protected getPreviousDeclImpl
- public getQualifier
- public getQualifierLoc
- public getSourceRange
- public getTagKind
- public getTemplateParameterList
- public getTypedefNameForAnonDecl
- public hasNameForLinkage
- public isBeingDefined
- public isClass
- public isCompleteDefinition
- public isCompleteDefinitionRequired
- public isDependentType
- public isEmbeddedInDeclarator
- public isEnum
- public isFreeStanding
- public isInterface
- public isStruct
- public isThisDeclarationADefinition
- public isThisDeclarationADemotedDefinition
- public isUnion
- public mayHaveOutOfDateDef
- protected setBeingDefined
- public setBraceRange
- public setCompleteDefinition
- public setCompleteDefinitionRequired
- public setEmbeddedInDeclarator
- public setFreeStanding
- protected setMayHaveOutOfDateDef
- public setQualifierInfo
- public setTagKind
- public setTemplateParameterListsInfo
- public setTypedefNameForAnonDecl
- public startDefinition
Inherited from DeclContext:
- protected BuildDeclChain
- public Encloses
- public Equals
- public InEnclosingNamespaceSetOf
- public addDecl
- public addDeclInternal
- public addHiddenDecl
- public buildLookup
- public classof
- public classof
- public collectAllContexts
- public containsDecl
- public containsDeclAndLoad
- public ddiags
- public decls
- public decls_begin
- public decls_empty
- public decls_end
- public dumpDeclContext
- public dumpLookups
- public dumpLookups
- public getDeclKind
- public getDeclKindName
- public getEnclosingNamespaceContext
- public getEnclosingNamespaceContext
- public getExternCContext
- public getInnermostBlockDecl
- public getLexicalParent
- public getLexicalParent
- public getLookupParent
- public getLookupParent
- public getLookupPtr
- public getNonClosureAncestor
- public getNonClosureAncestor
- public getNonTransparentContext
- public getNonTransparentContext
- public getOuterLexicalRecordContext
- public getOuterLexicalRecordContext
- public getParent
- public getParent
- public getParentASTContext
- public getPrimaryContext
- public getPrimaryContext
- public getRedeclContext
- public getRedeclContext
- public hasExternalLexicalStorage
- public hasExternalVisibleStorage
- public isClosure
- public isDeclInLexicalTraversal
- public isDependentContext
- public isExternCContext
- public isExternCXXContext
- public isFileContext
- public isFunctionOrMethod
- public isInlineNamespace
- public isLookupContext
- public isNamespace
- public isObjCContainer
- public isRecord
- public isStdNamespace
- public isTranslationUnit
- public isTransparentContext
- public localUncachedLookup
- public lookup
- public lookups
- public lookups_begin
- public lookups_end
- public makeDeclVisibleInContext
- public noload_decls
- public noload_decls_begin
- public noload_decls_end
- public noload_lookup
- public noload_lookups
- public noload_lookups_begin
- public noload_lookups_end
- public removeDecl
- public setHasExternalLexicalStorage
- public setHasExternalVisibleStorage
- public setMustBuildLookupTable
- public setUseQualifiedLookup
- public shouldUseQualifiedLookup
- public using_directives
Inherited from TypeDecl:
- public classof
- public classofKind
- public getBeginLoc
- public getSourceRange
- public getTypeForDecl
- public setLocStart
- public setTypeForDecl
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
¶ClassTemplateSpecializationDecl(
clang::ASTContext& C,
clang::Decl::Kind DK)
ClassTemplateSpecializationDecl(
clang::ASTContext& C,
clang::Decl::Kind DK)
Declared at: clang/include/clang/AST/DeclTemplate.h:1884
Parameters
- clang::ASTContext& C
- clang::Decl::Kind DK
¶ClassTemplateSpecializationDecl(
clang::ASTContext& Context,
clang::Decl::Kind DK,
clang::TagDecl::TagKind TK,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::ClassTemplateDecl* SpecializedTemplate,
ArrayRef<clang::TemplateArgument> Args,
clang::ClassTemplateSpecializationDecl*
PrevDecl)
ClassTemplateSpecializationDecl(
clang::ASTContext& Context,
clang::Decl::Kind DK,
clang::TagDecl::TagKind TK,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::ClassTemplateDecl* SpecializedTemplate,
ArrayRef<clang::TemplateArgument> Args,
clang::ClassTemplateSpecializationDecl*
PrevDecl)
Declared at: clang/include/clang/AST/DeclTemplate.h:1877
Parameters
- clang::ASTContext& Context
- clang::Decl::Kind DK
- clang::TagDecl::TagKind TK
- clang::DeclContext* DC
- clang::SourceLocation StartLoc
- clang::SourceLocation IdLoc
- clang::ClassTemplateDecl* SpecializedTemplate
- ArrayRef<clang::TemplateArgument> Args
- clang::ClassTemplateSpecializationDecl* PrevDecl
¶static clang::ClassTemplateSpecializationDecl*
Create(
clang::ASTContext& Context,
clang::TagDecl::TagKind TK,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::ClassTemplateDecl* SpecializedTemplate,
ArrayRef<clang::TemplateArgument> Args,
clang::ClassTemplateSpecializationDecl*
PrevDecl)
static clang::ClassTemplateSpecializationDecl*
Create(
clang::ASTContext& Context,
clang::TagDecl::TagKind TK,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::ClassTemplateDecl* SpecializedTemplate,
ArrayRef<clang::TemplateArgument> Args,
clang::ClassTemplateSpecializationDecl*
PrevDecl)
Declared at: clang/include/clang/AST/DeclTemplate.h:1891
Parameters
- clang::ASTContext& Context
- clang::TagDecl::TagKind TK
- clang::DeclContext* DC
- clang::SourceLocation StartLoc
- clang::SourceLocation IdLoc
- clang::ClassTemplateDecl* SpecializedTemplate
- ArrayRef<clang::TemplateArgument> Args
- clang::ClassTemplateSpecializationDecl* PrevDecl
¶static clang::ClassTemplateSpecializationDecl*
CreateDeserialized(clang::ASTContext& C,
unsigned int ID)
static clang::ClassTemplateSpecializationDecl*
CreateDeserialized(clang::ASTContext& C,
unsigned int ID)
Declared at: clang/include/clang/AST/DeclTemplate.h:1897
Parameters
- clang::ASTContext& C
- unsigned int ID
¶static void Profile(
llvm::FoldingSetNodeID& ID,
ArrayRef<clang::TemplateArgument>
TemplateArgs,
clang::ASTContext& Context)
static void Profile(
llvm::FoldingSetNodeID& ID,
ArrayRef<clang::TemplateArgument>
TemplateArgs,
clang::ASTContext& Context)
Declared at: clang/include/clang/AST/DeclTemplate.h:2086
Parameters
- llvm::FoldingSetNodeID& ID
- ArrayRef<clang::TemplateArgument> TemplateArgs
- clang::ASTContext& Context
¶void Profile(llvm::FoldingSetNodeID& ID) const
void Profile(llvm::FoldingSetNodeID& ID) const
Declared at: clang/include/clang/AST/DeclTemplate.h:2081
Parameters
¶static bool classof(const clang::Decl* D)
static bool classof(const clang::Decl* D)
Declared at: clang/include/clang/AST/DeclTemplate.h:2093
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:2095
Parameters
- clang::Decl::Kind K
¶clang::SourceLocation getExternLoc() const
clang::SourceLocation getExternLoc() const
Description
Gets the location of the extern keyword, if present.
Declared at: clang/include/clang/AST/DeclTemplate.h:2056
¶llvm::PointerUnion<
ClassTemplateDecl*,
ClassTemplatePartialSpecializationDecl*>
getInstantiatedFrom() const
llvm::PointerUnion<
ClassTemplateDecl*,
ClassTemplatePartialSpecializationDecl*>
getInstantiatedFrom() const
Description
If this class template specialization is an instantiation of a template (rather than an explicit specialization), return the class template or class template partial specialization from which it was instantiated.
Declared at: clang/include/clang/AST/DeclTemplate.h:1981
¶clang::ClassTemplateSpecializationDecl*
getMostRecentDecl()
clang::ClassTemplateSpecializationDecl*
getMostRecentDecl()
Declared at: clang/include/clang/AST/DeclTemplate.h:1907
¶void getNameForDiagnostic(
llvm::raw_ostream& OS,
const clang::PrintingPolicy& Policy,
bool Qualified) const
void getNameForDiagnostic(
llvm::raw_ostream& OS,
const clang::PrintingPolicy& Policy,
bool Qualified) const
Description
Appends a human-readable name for this declaration into the given stream. This is the method invoked by Sema when displaying a NamedDecl in a diagnostic. It does not necessarily produce the same result as printName(); for example, class template specializations are printed with their template arguments.
Declared at: clang/include/clang/AST/DeclTemplate.h:1899
Parameters
- llvm::raw_ostream& OS
- const clang::PrintingPolicy& Policy
- bool Qualified
¶clang::SourceLocation getPointOfInstantiation()
const
clang::SourceLocation getPointOfInstantiation()
const
Description
Get the point of instantiation (if any), or null if none.
Declared at: clang/include/clang/AST/DeclTemplate.h:1966
¶clang::SourceRange getSourceRange() const
clang::SourceRange getSourceRange() const
Description
Source range that this declaration covers.
Declared at: clang/include/clang/AST/DeclTemplate.h:2079
¶clang::TemplateSpecializationKind
getSpecializationKind() const
clang::TemplateSpecializationKind
getSpecializationKind() const
Description
Determine the kind of specialization that this declaration represents.
Declared at: clang/include/clang/AST/DeclTemplate.h:1927
¶clang::ClassTemplateDecl* getSpecializedTemplate()
const
clang::ClassTemplateDecl* getSpecializedTemplate()
const
Description
Retrieve the template that this specialization specializes.
Declared at: clang/include/clang/AST/DeclTemplate.h:1913
¶llvm::PointerUnion<
ClassTemplateDecl*,
ClassTemplatePartialSpecializationDecl*>
getSpecializedTemplateOrPartial() const
llvm::PointerUnion<
ClassTemplateDecl*,
ClassTemplatePartialSpecializationDecl*>
getSpecializedTemplateOrPartial() const
Description
Retrieve the class template or class template partial specialization which was specialized by this.
Declared at: clang/include/clang/AST/DeclTemplate.h:1993
¶const clang::TemplateArgumentList&
getTemplateArgs() const
const clang::TemplateArgumentList&
getTemplateArgs() const
Description
Retrieve the template arguments of the class template specialization.
Declared at: clang/include/clang/AST/DeclTemplate.h:1917
¶const clang::TemplateArgumentList&
getTemplateInstantiationArgs() const
const clang::TemplateArgumentList&
getTemplateInstantiationArgs() const
Description
Retrieve the set of template arguments that should be used to instantiate members of the class template or class template partial specialization from which this class template specialization was instantiated.
Declared at: clang/include/clang/AST/DeclTemplate.h:2012
Returns
For a class template specialization instantiated from the primary template, this function will return the same template arguments as getTemplateArgs(). For a class template specialization instantiated from a class template partial specialization, this function will return the deduced template arguments for the class template partial specialization itself.
¶clang::SourceLocation getTemplateKeywordLoc()
const
clang::SourceLocation getTemplateKeywordLoc()
const
Description
Gets the location of the template keyword, if present.
Declared at: clang/include/clang/AST/DeclTemplate.h:2075
¶clang::TypeSourceInfo* getTypeAsWritten() const
clang::TypeSourceInfo* getTypeAsWritten() const
Description
Gets the type of this specialization as it was written by the user, if it was so written.
Declared at: clang/include/clang/AST/DeclTemplate.h:2051
¶bool isClassScopeExplicitSpecialization() const
bool isClassScopeExplicitSpecialization() const
Description
Is this an explicit specialization at class scope (within the class that owns the primary template)? For example:
Declared at: clang/include/clang/AST/DeclTemplate.h:1944
¶bool isExplicitInstantiationOrSpecialization()
const
bool isExplicitInstantiationOrSpecialization()
const
Description
True if this declaration is an explicit specialization, explicit instantiation declaration, or explicit instantiation definition.
Declared at: clang/include/clang/AST/DeclTemplate.h:1952
¶bool isExplicitSpecialization() const
bool isExplicitSpecialization() const
Declared at: clang/include/clang/AST/DeclTemplate.h:1931
¶void setExternLoc(clang::SourceLocation Loc)
void setExternLoc(clang::SourceLocation Loc)
Description
Sets the location of the extern keyword.
Declared at: clang/include/clang/AST/DeclTemplate.h:2061
Parameters
¶void setInstantiationOf(
clang::ClassTemplatePartialSpecializationDecl*
PartialSpec,
const clang::TemplateArgumentList*
TemplateArgs)
void setInstantiationOf(
clang::ClassTemplatePartialSpecializationDecl*
PartialSpec,
const clang::TemplateArgumentList*
TemplateArgs)
Description
Note that this class template specialization is actually an instantiation of the given class template partial specialization whose template arguments have been deduced.
Declared at: clang/include/clang/AST/DeclTemplate.h:2023
Parameters
- clang::ClassTemplatePartialSpecializationDecl* PartialSpec
- const clang::TemplateArgumentList* TemplateArgs
¶void setInstantiationOf(
clang::ClassTemplateDecl* TemplDecl)
void setInstantiationOf(
clang::ClassTemplateDecl* TemplDecl)
Description
Note that this class template specialization is an instantiation of the given class template.
Declared at: clang/include/clang/AST/DeclTemplate.h:2035
Parameters
- clang::ClassTemplateDecl* TemplDecl
¶void setPointOfInstantiation(
clang::SourceLocation Loc)
void setPointOfInstantiation(
clang::SourceLocation Loc)
Declared at: clang/include/clang/AST/DeclTemplate.h:1970
Parameters
¶void setSpecializationKind(
clang::TemplateSpecializationKind TSK)
void setSpecializationKind(
clang::TemplateSpecializationKind TSK)
Declared at: clang/include/clang/AST/DeclTemplate.h:1961
Parameters
- clang::TemplateSpecializationKind TSK
¶void setSpecializedTemplate(
clang::ClassTemplateDecl* Specialized)
void setSpecializedTemplate(
clang::ClassTemplateDecl* Specialized)
Declared at: clang/include/clang/AST/DeclTemplate.h:1957
Parameters
- clang::ClassTemplateDecl* Specialized
¶void setTemplateArgs(
clang::TemplateArgumentList* Args)
void setTemplateArgs(
clang::TemplateArgumentList* Args)
Declared at: clang/include/clang/AST/DeclTemplate.h:1921
Parameters
¶void setTemplateKeywordLoc(
clang::SourceLocation Loc)
void setTemplateKeywordLoc(
clang::SourceLocation Loc)
Description
Sets the location of the template keyword.
Declared at: clang/include/clang/AST/DeclTemplate.h:2068
Parameters
¶void setTypeAsWritten(clang::TypeSourceInfo* T)
void setTypeAsWritten(clang::TypeSourceInfo* T)
Description
Sets the type of this specialization as it was written by the user. This will be a class template specialization type.
Declared at: clang/include/clang/AST/DeclTemplate.h:2043