clang 20.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::ClassTemplatePartialSpecializationDecl Class Reference

#include "clang/AST/DeclTemplate.h"

Inheritance diagram for clang::ClassTemplatePartialSpecializationDecl:
Inheritance graph
[legend]

Public Member Functions

ClassTemplatePartialSpecializationDeclgetMostRecentDecl ()
 
TemplateParameterListgetTemplateParameters () const
 Get the list of template parameters.
 
ArrayRef< TemplateArgumentgetInjectedTemplateArgs (const ASTContext &Context) const
 Get the template argument list of the template parameter list.
 
void getAssociatedConstraints (llvm::SmallVectorImpl< const Expr * > &AC) const
 All associated constraints of this partial specialization, including the requires clause and any constraints derived from constrained-parameters.
 
bool hasAssociatedConstraints () const
 
ClassTemplatePartialSpecializationDeclgetInstantiatedFromMember () const
 Retrieve the member class template partial specialization from which this particular class template partial specialization was instantiated.
 
ClassTemplatePartialSpecializationDeclgetInstantiatedFromMemberTemplate () const
 
void setInstantiatedFromMember (ClassTemplatePartialSpecializationDecl *PartialSpec)
 
bool isMemberSpecialization () const
 Determines whether this class template partial specialization template was a specialization of a member partial specialization.
 
void setMemberSpecialization ()
 Note that this member template is a specialization.
 
QualType getInjectedSpecializationType () const
 Retrieves the injected specialization type for this partial specialization.
 
SourceRange getSourceRange () const override LLVM_READONLY
 Source range that this declaration covers.
 
void Profile (llvm::FoldingSetNodeID &ID) const
 
- Public Member Functions inherited from clang::ClassTemplateSpecializationDecl
void getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const override
 Appends a human-readable name for this declaration into the given stream.
 
ClassTemplateSpecializationDeclgetMostRecentDecl ()
 
ClassTemplateDeclgetSpecializedTemplate () const
 Retrieve the template that this specialization specializes.
 
const TemplateArgumentListgetTemplateArgs () const
 Retrieve the template arguments of the class template specialization.
 
void setTemplateArgs (TemplateArgumentList *Args)
 
TemplateSpecializationKind getSpecializationKind () const
 Determine the kind of specialization that this declaration represents.
 
bool isExplicitSpecialization () const
 
bool isClassScopeExplicitSpecialization () const
 Is this an explicit specialization at class scope (within the class that owns the primary template)? For example:
 
bool isExplicitInstantiationOrSpecialization () const
 True if this declaration is an explicit specialization, explicit instantiation declaration, or explicit instantiation definition.
 
void setSpecializedTemplate (ClassTemplateDecl *Specialized)
 
void setSpecializationKind (TemplateSpecializationKind TSK)
 
SourceLocation getPointOfInstantiation () const
 Get the point of instantiation (if any), or null if none.
 
void setPointOfInstantiation (SourceLocation Loc)
 
llvm::PointerUnion< ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl * > getInstantiatedFrom () const
 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.
 
llvm::PointerUnion< ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl * > getSpecializedTemplateOrPartial () const
 Retrieve the class template or class template partial specialization which was specialized by this.
 
const TemplateArgumentListgetTemplateInstantiationArgs () const
 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.
 
void setInstantiationOf (ClassTemplatePartialSpecializationDecl *PartialSpec, const TemplateArgumentList *TemplateArgs)
 Note that this class template specialization is actually an instantiation of the given class template partial specialization whose template arguments have been deduced.
 
void setInstantiationOf (ClassTemplateDecl *TemplDecl)
 Note that this class template specialization is an instantiation of the given class template.
 
const ASTTemplateArgumentListInfogetTemplateArgsAsWritten () const
 Retrieve the template argument list as written in the sources, if any.
 
void setTemplateArgsAsWritten (const ASTTemplateArgumentListInfo *ArgsWritten)
 Set the template argument list as written in the sources.
 
void setTemplateArgsAsWritten (const TemplateArgumentListInfo &ArgsInfo)
 Set the template argument list as written in the sources.
 
SourceLocation getExternKeywordLoc () const
 Gets the location of the extern keyword, if present.
 
void setExternKeywordLoc (SourceLocation Loc)
 Sets the location of the extern keyword.
 
SourceLocation getTemplateKeywordLoc () const
 Gets the location of the template keyword, if present.
 
void setTemplateKeywordLoc (SourceLocation Loc)
 Sets the location of the template keyword.
 
SourceRange getSourceRange () const override LLVM_READONLY
 Source range that this declaration covers.
 
void