class RedeclarableTemplateDecl
Declaration
class RedeclarableTemplateDecl : public TemplateDecl,
public Redeclarable { /* full declaration omitted */ };
Description
Declaration of a redeclarable template.
Declared at: clang/include/clang/AST/DeclTemplate.h:762
Inherits from: TemplateDecl, Redeclarable
Member Variables
- protected clang::RedeclarableTemplateDecl::CommonBase* Common = nullptr
- Pointer to the common data shared by all declarations of this template.
Inherited from TemplateDecl:
Inherited from Decl:
- protected NextInContextAndBits
- protected Access
- protected FromASTFile
- protected IdentifierNamespace
- protected CacheValidAndLinkage
Method Overview
- protected RedeclarableTemplateDecl(clang::Decl::Kind DK, clang::ASTContext & C, clang::DeclContext * DC, clang::SourceLocation L, clang::DeclarationName Name, clang::TemplateParameterList * Params, clang::NamedDecl * Decl)
- protected template <class Derived, class EntryType>void addSpecializationImpl(llvm::FoldingSetVector<EntryType> & Specs, EntryType * Entry, void * InsertPos)
- private void anchor()
- public static bool classof(const clang::Decl * D)
- public static bool classofKind(clang::Decl::Kind K)
- protected template <class EntryType, typename... ProfileArguments>typename SpecEntryTraits<EntryType>::DeclType * findSpecializationImpl(llvm::FoldingSetVector<EntryType> & Specs, void *& InsertPos, ProfileArguments &&... ProfileArgs)
- public const clang::RedeclarableTemplateDecl * getCanonicalDecl() const
- public clang::RedeclarableTemplateDecl * getCanonicalDecl()
- protected clang::RedeclarableTemplateDecl::CommonBase * getCommonPtr() const
- public clang::RedeclarableTemplateDecl * getInstantiatedFromMemberTemplate() const
- private clang::RedeclarableTemplateDecl * getMostRecentDeclImpl()
- private clang::RedeclarableTemplateDecl * getNextRedeclarationImpl()
- private clang::RedeclarableTemplateDecl * getPreviousDeclImpl()
- public bool isMemberSpecialization() const
- protected void loadLazySpecializationsImpl() const
- protected template <typename EntryType>static SpecIterator<EntryType> makeSpecIterator(llvm::FoldingSetVector<EntryType> & Specs, bool isEnd)
- protected virtual clang::RedeclarableTemplateDecl::CommonBase * newCommon(clang::ASTContext & C) const
- public void setInstantiatedFromMemberTemplate(clang::RedeclarableTemplateDecl * TD)
- public void setMemberSpecialization()
Inherited from TemplateDecl:
- public classof
- public classofKind
- public getAssociatedConstraints
- public getSourceRange
- public getTemplateParameters
- public getTemplatedDecl
- public hasAssociatedConstraints
- public init
- protected setTemplateParameters
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
¶RedeclarableTemplateDecl(
clang::Decl::Kind DK,
clang::ASTContext& C,
clang::DeclContext* DC,
clang::SourceLocation L,
clang::DeclarationName Name,
clang::TemplateParameterList* Params,
clang::NamedDecl* Decl)
RedeclarableTemplateDecl(
clang::Decl::Kind DK,
clang::ASTContext& C,
clang::DeclContext* DC,
clang::SourceLocation L,
clang::DeclarationName Name,
clang::TemplateParameterList* Params,
clang::NamedDecl* Decl)
Declared at: clang/include/clang/AST/DeclTemplate.h:862
Parameters
- clang::Decl::Kind DK
- clang::ASTContext& C
- clang::DeclContext* DC
- clang::SourceLocation L
- clang::DeclarationName Name
- clang::TemplateParameterList* Params
- clang::NamedDecl* Decl
¶template <class Derived, class EntryType>
void addSpecializationImpl(
llvm::FoldingSetVector<EntryType>& Specs,
EntryType* Entry,
void* InsertPos)
template <class Derived, class EntryType>
void addSpecializationImpl(
llvm::FoldingSetVector<EntryType>& Specs,
EntryType* Entry,
void* InsertPos)
Declared at: clang/include/clang/AST/DeclTemplate.h:828
Templates
- Derived
- EntryType
Parameters
- llvm::FoldingSetVector<EntryType>& Specs
- EntryType* Entry
- void* InsertPos
¶void anchor()
void anchor()
Declared at: clang/include/clang/AST/DeclTemplate.h:779
¶static bool classof(const clang::Decl* D)
static bool classof(const clang::Decl* D)
Declared at: clang/include/clang/AST/DeclTemplate.h:966
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:968
Parameters
- clang::Decl::Kind K
¶template <class EntryType,
typename... ProfileArguments>
typename SpecEntryTraits<EntryType>::DeclType*
findSpecializationImpl(
llvm::FoldingSetVector<EntryType>& Specs,
void*& InsertPos,
ProfileArguments&&... ProfileArgs)
template <class EntryType,
typename... ProfileArguments>
typename SpecEntryTraits<EntryType>::DeclType*
findSpecializationImpl(
llvm::FoldingSetVector<EntryType>& Specs,
void*& InsertPos,
ProfileArguments&&... ProfileArgs)
Declared at: clang/include/clang/AST/DeclTemplate.h:824
Templates
- EntryType
- ProfileArguments
Parameters
- llvm::FoldingSetVector<EntryType>& Specs
- void*& InsertPos
- ProfileArguments&&... ProfileArgs
¶const clang::RedeclarableTemplateDecl*
getCanonicalDecl() const
const clang::RedeclarableTemplateDecl*
getCanonicalDecl() const
Declared at: clang/include/clang/AST/DeclTemplate.h:877
¶clang::RedeclarableTemplateDecl*
getCanonicalDecl()
clang::RedeclarableTemplateDecl*
getCanonicalDecl()
Description
Retrieves the canonical declaration of this template.
Declared at: clang/include/clang/AST/DeclTemplate.h:874
¶clang::RedeclarableTemplateDecl::CommonBase*
getCommonPtr() const
clang::RedeclarableTemplateDecl::CommonBase*
getCommonPtr() const
Description
Retrieves the "common" pointer shared by all (re-)declarations of the same template. Calling this routine may implicitly allocate memory for the common pointer.
Declared at: clang/include/clang/AST/DeclTemplate.h:857
¶clang::RedeclarableTemplateDecl*
getInstantiatedFromMemberTemplate() const
clang::RedeclarableTemplateDecl*
getInstantiatedFromMemberTemplate() const
Description
Retrieve the member template from which this template was instantiated, or nullptr if this template was not instantiated from a member template. A template is instantiated from a member template when the member template itself is part of a class template (or member thereof). For example, given \c X<int>::f is a FunctionTemplateDecl that describes the function template which was itself created during the instantiation of \c X<int>. Calling getInstantiatedFromMemberTemplate() on this FunctionTemplateDecl will retrieve the FunctionTemplateDecl for the original template \c f within the class template \c X<T>, i.e.,
Declared at: clang/include/clang/AST/DeclTemplate.h:946
¶clang::RedeclarableTemplateDecl*
getMostRecentDeclImpl()
clang::RedeclarableTemplateDecl*
getMostRecentDeclImpl()
Description
Implementation of getMostRecentDecl(), to be overridden by any subclass that has a redeclaration chain.
Declared at: clang/include/clang/AST/DeclTemplate.h:775
¶clang::RedeclarableTemplateDecl*
getNextRedeclarationImpl()
clang::RedeclarableTemplateDecl*
getNextRedeclarationImpl()
Description
Returns the next redeclaration or itself if this is the only decl. Decl subclasses that can be redeclared should override this method so that Decl::redecl_iterator can iterate over them.
Declared at: clang/include/clang/AST/DeclTemplate.h:767
¶clang::RedeclarableTemplateDecl*
getPreviousDeclImpl()
clang::RedeclarableTemplateDecl*
getPreviousDeclImpl()
Description
Implementation of getPreviousDecl(), to be overridden by any subclass that has a redeclaration chain.
Declared at: clang/include/clang/AST/DeclTemplate.h:771
¶bool isMemberSpecialization() const
bool isMemberSpecialization() const
Description
Determines whether this template was a specialization of a member template. In the following example, the function template \c X<int>::f and the member template \c X<int>::Inner are member specializations.
Declared at: clang/include/clang/AST/DeclTemplate.h:899
¶void loadLazySpecializationsImpl() const
void loadLazySpecializationsImpl() const
Declared at: clang/include/clang/AST/DeclTemplate.h:820
¶template <typename EntryType>
static SpecIterator<EntryType> makeSpecIterator(
llvm::FoldingSetVector<EntryType>& Specs,
bool isEnd)
template <typename EntryType>
static SpecIterator<EntryType> makeSpecIterator(
llvm::FoldingSetVector<EntryType>& Specs,
bool isEnd)
Declared at: clang/include/clang/AST/DeclTemplate.h:816
Templates
- EntryType
Parameters
- llvm::FoldingSetVector<EntryType>& Specs
- bool isEnd
¶virtual clang::RedeclarableTemplateDecl::
CommonBase*
newCommon(clang::ASTContext& C) const
virtual clang::RedeclarableTemplateDecl::
CommonBase*
newCommon(clang::ASTContext& C) const
Declared at: clang/include/clang/AST/DeclTemplate.h:859
Parameters
¶void setInstantiatedFromMemberTemplate(
clang::RedeclarableTemplateDecl* TD)
void setInstantiatedFromMemberTemplate(
clang::RedeclarableTemplateDecl* TD)
Declared at: clang/include/clang/AST/DeclTemplate.h:950
Parameters
¶void setMemberSpecialization()
void setMemberSpecialization()
Description
Note that this member template is a specialization.
Declared at: clang/include/clang/AST/DeclTemplate.h:904