clang
3.9.0
|
The base class of all kinds of template declarations (e.g., class, function, etc.). More...
#include <DeclTemplate.h>
Public Member Functions | |
TemplateParameterList * | getTemplateParameters () const |
Get the list of template parameters. More... | |
NamedDecl * | getTemplatedDecl () const |
Get the underlying, templated declaration. More... | |
SourceRange | getSourceRange () const override LLVM_READONLY |
bool | isConcept () const |
Whether this is a (C++ Concepts TS) function or variable concept. More... | |
void | setConcept () |
void | init (NamedDecl *templatedDecl, TemplateParameterList *templateParams) |
Initialize the underlying templated declaration and template parameters. More... | |
![]() | |
IdentifierInfo * | getIdentifier () const |
getIdentifier - Get the identifier that names this declaration, if there is one. More... | |
StringRef | getName () const |
getName - Get the name of identifier for this declaration as a StringRef. More... | |
std::string | getNameAsString () const |
getNameAsString - Get a human-readable name for the declaration, even if it is one of the special kinds of names (C++ constructor, Objective-C selector, etc). More... | |
void | printName (raw_ostream &os) const |
DeclarationName | getDeclName () const |
getDeclName - Get the actual, stored name of the declaration, which may be a special name. More... | |
void | setDeclName (DeclarationName N) |
Set the name of this declaration. More... | |
void | printQualifiedName (raw_ostream &OS) const |
printQualifiedName - Returns human-readable qualified name for declaration, like A::B::i, for i being member of namespace A::B. More... | |
void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
std::string | getQualifiedNameAsString () const |
virtual void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
getNameForDiagnostic - Appends a human-readable name for this declaration into the given stream. More... | |
bool | declarationReplaces (NamedDecl *OldD, bool IsKnownNewer=true) const |
Determine whether this declaration, if known to be well-formed within its context, will replace the declaration OldD if introduced into scope. More... | |
bool | hasLinkage () const |
Determine whether this declaration has linkage. More... | |
bool | isHidden () const |
Determine whether this declaration is hidden from name lookup. More... | |
void | setHidden (bool Hide) |
Set whether this declaration is hidden from name lookup. More... | |
bool | isCXXClassMember () const |
Determine whether this declaration is a C++ class member. More... | |
bool | isCXXInstanceMember () const |
Determine whether the given declaration is an instance member of a C++ class. More... | |
Linkage | getLinkageInternal () const |
Determine what kind of linkage this entity has. More... | |
Linkage | getFormalLinkage () const |
Get the linkage from a semantic point of view. More... | |
bool | hasExternalFormalLinkage () const |
True if this decl has external linkage. More... | |
bool | isExternallyVisible () const |
Visibility | getVisibility () const |
Determines the visibility of this entity. More... | |
LinkageInfo | getLinkageAndVisibility () const |
Determines the linkage and visibility of this entity. More... | |
Optional< Visibility > | getExplicitVisibility (ExplicitVisibilityKind kind) const |
If visibility was explicitly specified for this declaration, return that visibility. More... | |
bool | isLinkageValid () const |
True if the computed linkage is valid. More... | |
bool | hasLinkageBeenComputed () const |
True if something has required us to compute the linkage of this declaration. More... | |
NamedDecl * | getUnderlyingDecl () |
Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl. More... | |
const NamedDecl * | getUnderlyingDecl () const |
NamedDecl * | getMostRecentDecl () |
const NamedDecl * | getMostRecentDecl () const |
ObjCStringFormatFamily | getObjCFStringFormattingFamily () const |
Static Public Member Functions | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
Protected Member Functions | |
TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name) | |
TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params) | |
TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl) | |
![]() | |
NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N) | |
Protected Attributes | |
llvm::PointerIntPair < NamedDecl *, 1, bool > | TemplatedDecl |
The named declaration from which this template was instantiated. More... | |
TemplateParameterList * | TemplateParams |
Additional Inherited Members | |
![]() | |
enum | ExplicitVisibilityKind { VisibilityForType, VisibilityForValue } |
Kinds of explicit visibility. More... | |
The base class of all kinds of template declarations (e.g., class, function, etc.).
The TemplateDecl class stores the list of template parameters and a reference to the templated scoped declaration: the underlying AST node.
Definition at line 330 of file DeclTemplate.h.
|
inlineprotected |
Definition at line 334 of file DeclTemplate.h.
|
inlineprotected |
Definition at line 340 of file DeclTemplate.h.
|
inlineprotected |
Definition at line 346 of file DeclTemplate.h.
Definition at line 361 of file DeclTemplate.h.
Definition at line 362 of file DeclTemplate.h.
|
inlineoverride |
Definition at line 366 of file DeclTemplate.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction(), and clang::ClassTemplateSpecializationDecl::getSourceRange().
|
inline |
Get the underlying, templated declaration.
Definition at line 358 of file DeclTemplate.h.
Referenced by isSameEntity(), clang::ASTDeclReader::mergeTemplatePattern(), and clang::ASTDeclWriter::VisitTemplateDecl().
|
inline |
Get the list of template parameters.
Definition at line 353 of file DeclTemplate.h.
Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::ActOnVarTemplateSpecialization(), addFunctionPointerConversion(), AddTemplateParameterChunks(), clang::Sema::CheckClassTemplate(), checkLiteralOperatorTemplateParameterList(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTemplateArgumentList(), clang::PredefinedExpr::ComputeName(), clang::Sema::DeduceTemplateArguments(), diagnoseArityMismatch(), DiagnoseUnexpandedParameterPacks(), clang::comments::DeclInfo::fill(), FinishTemplateArgumentDeduction(), clang::Sema::FinishTemplateArgumentDeduction(), clang::ClassTemplateDecl::getInjectedClassNameSpecialization(), clang::FunctionTemplateDecl::getInjectedTemplateArgs(), hasDeducibleTemplateParameters(), inheritDefaultTemplateArguments(), isAtLeastAsSpecializedAs(), clang::Sema::IsOverload(), isSameEntity(), isSameTemplateParameter(), clang::Sema::isStdInitializerList(), IsStructurallyEquivalent(), LookupStdInitializerList(), clang::Sema::MarkDeducedTemplateParameters(), MatchTemplateParameterKind(), mergeTemplateLV(), clang::Sema::MergeVarDecl(), clang::Sema::PrintInstantiationStack(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTDeclWriter::VisitTemplateDecl(), clang::ASTNodeImporter::VisitTemplateTemplateParmDecl(), and clang::ASTNodeImporter::VisitVarTemplateDecl().
|
inline |
Initialize the underlying templated declaration and template parameters.
Definition at line 388 of file DeclTemplate.h.
Referenced by clang::ASTDeclReader::VisitTemplateDecl().
|
inline |
Whether this is a (C++ Concepts TS) function or variable concept.
Definition at line 372 of file DeclTemplate.h.
Referenced by clang::Sema::CheckFunctionTemplateSpecialization().
|
inline |
Definition at line 373 of file DeclTemplate.h.
The named declaration from which this template was instantiated.
(or null).
The boolean value will be true to indicate that this template (function or variable) is a concept.
Definition at line 381 of file DeclTemplate.h.
Referenced by clang::VarTemplateDecl::getTemplatedDecl().
|
protected |
Definition at line 383 of file DeclTemplate.h.