clang
3.9.0
|
Declaration of a template type parameter. More...
#include <DeclTemplate.h>
Public Member Functions | |
bool | wasDeclaredWithTypename () const |
Whether this template type parameter was declared with the 'typename' keyword. More... | |
const DefArgStorage & | getDefaultArgStorage () const |
bool | hasDefaultArgument () const |
Determine whether this template parameter has a default argument. More... | |
QualType | getDefaultArgument () const |
Retrieve the default argument, if any. More... | |
TypeSourceInfo * | getDefaultArgumentInfo () const |
Retrieves the default argument's source information, if any. More... | |
SourceLocation | getDefaultArgumentLoc () const |
Retrieves the location of the default argument declaration. More... | |
bool | defaultArgumentWasInherited () const |
Determines whether the default argument was inherited from a previous declaration of this template. More... | |
void | setDefaultArgument (TypeSourceInfo *DefArg) |
Set the default argument for this template parameter. More... | |
void | setInheritedDefaultArgument (const ASTContext &C, TemplateTypeParmDecl *Prev) |
Set that this default argument was inherited from another parameter. More... | |
void | removeDefaultArgument () |
Removes the default argument of this template parameter. More... | |
void | setDeclaredWithTypename (bool withTypename) |
Set whether this template type parameter was declared with the 'typename' or 'class' keyword. More... | |
unsigned | getDepth () const |
Retrieve the depth of the template parameter. More... | |
unsigned | getIndex () const |
Retrieve the index of the template parameter. More... | |
bool | isParameterPack () const |
Returns whether this is a parameter pack. More... | |
SourceRange | getSourceRange () const override LLVM_READONLY |
![]() | |
const Type * | getTypeForDecl () const |
void | setTypeForDecl (const Type *TD) |
SourceLocation | getLocStart () const LLVM_READONLY |
void | setLocStart (SourceLocation L) |
SourceRange | getSourceRange () const override LLVM_READONLY |
![]() | |
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 TemplateTypeParmDecl * | Create (const ASTContext &C, DeclContext *DC, SourceLocation KeyLoc, SourceLocation NameLoc, unsigned D, unsigned P, IdentifierInfo *Id, bool Typename, bool ParameterPack) |
static TemplateTypeParmDecl * | CreateDeserialized (const ASTContext &C, unsigned ID) |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
Friends | |
class | Sema |
Sema creates these on the stack during auto type deduction. More... | |
Additional Inherited Members | |
![]() | |
enum | ExplicitVisibilityKind { VisibilityForType, VisibilityForValue } |
Kinds of explicit visibility. More... | |
![]() | |
TypeDecl (Kind DK, DeclContext *DC, SourceLocation L, IdentifierInfo *Id, SourceLocation StartL=SourceLocation()) | |
![]() | |
NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N) | |
Declaration of a template type parameter.
For example, "T" in
Definition at line 1037 of file DeclTemplate.h.
Definition at line 1131 of file DeclTemplate.h.
Definition at line 1132 of file DeclTemplate.h.
|
static |
Definition at line 473 of file DeclTemplate.cpp.
References clang::ASTContext::getTemplateTypeParmType(), clang::QualType::getTypePtr(), and clang::TypeDecl::setTypeForDecl().
Referenced by clang::Sema::ActOnTypeParameter(), ConvertDeclSpecToType(), createMakeIntegerSeqParameterList(), createTypePackElementParameterList(), clang::Sema::DeduceAutoType(), and clang::ASTNodeImporter::VisitTemplateTypeParmDecl().
|
static |
Definition at line 485 of file DeclTemplate.cpp.
References ID.
|
inline |
Determines whether the default argument was inherited from a previous declaration of this template.
Definition at line 1095 of file DeclTemplate.h.
Referenced by getSourceRange(), and clang::ASTDeclWriter::VisitTemplateTypeParmDecl().
|
inline |
Definition at line 1074 of file DeclTemplate.h.
|
inline |
Retrieve the default argument, if any.
Definition at line 1081 of file DeclTemplate.h.
|
inline |
Retrieves the default argument's source information, if any.
Definition at line 1086 of file DeclTemplate.h.
Referenced by getDefaultArgumentLoc(), getSourceRange(), SubstDefaultTemplateArgument(), and clang::ASTDeclWriter::VisitTemplateTypeParmDecl().
SourceLocation TemplateTypeParmDecl::getDefaultArgumentLoc | ( | ) | const |
Retrieves the location of the default argument declaration.
Definition at line 490 of file DeclTemplate.cpp.
References clang::TypeLoc::getBeginLoc(), getDefaultArgumentInfo(), clang::TypeSourceInfo::getTypeLoc(), and hasDefaultArgument().
Referenced by clang::Sema::CheckTemplateParameterList(), and SubstDefaultTemplateArgument().
unsigned TemplateTypeParmDecl::getDepth | ( | ) | const |
Retrieve the depth of the template parameter.
Definition at line 504 of file DeclTemplate.cpp.
References clang::Type::getAs(), and clang::TypeDecl::getTypeForDecl().
Referenced by checkLiteralOperatorTemplateParameterList(), SubstDefaultTemplateArgument(), and clang::ASTNodeImporter::VisitTemplateTypeParmDecl().
unsigned TemplateTypeParmDecl::getIndex | ( | ) | const |
Retrieve the index of the template parameter.
Definition at line 508 of file DeclTemplate.cpp.
References clang::Type::getAs(), and clang::TypeDecl::getTypeForDecl().
Referenced by checkLiteralOperatorTemplateParameterList(), and clang::ASTNodeImporter::VisitTemplateTypeParmDecl().
|
override |
Definition at line 496 of file DeclTemplate.cpp.
References defaultArgumentWasInherited(), getDefaultArgumentInfo(), clang::TypeDecl::getLocStart(), clang::TypeDecl::getSourceRange(), and hasDefaultArgument().
|
inline |
Determine whether this template parameter has a default argument.
Definition at line 1078 of file DeclTemplate.h.
Referenced by clang::Sema::CheckTemplateParameterList(), getDefaultArgumentLoc(), getSourceRange(), and clang::ASTDeclWriter::VisitTemplateTypeParmDecl().
bool TemplateTypeParmDecl::isParameterPack | ( | ) | const |
Returns whether this is a parameter pack.
Definition at line 512 of file DeclTemplate.cpp.
References clang::Type::getAs(), and clang::TypeDecl::getTypeForDecl().
Referenced by isSameTemplateParameter(), IsStructurallyEquivalent(), and clang::ASTNodeImporter::VisitTemplateTypeParmDecl().
|
inline |
Removes the default argument of this template parameter.
Definition at line 1111 of file DeclTemplate.h.
|
inline |
Set whether this template type parameter was declared with the 'typename' or 'class' keyword.
Definition at line 1117 of file DeclTemplate.h.
Referenced by clang::ASTDeclReader::VisitTemplateTypeParmDecl().
|
inline |
Set the default argument for this template parameter.
Definition at line 1100 of file DeclTemplate.h.
Referenced by clang::Sema::ActOnTypeParameter(), and clang::ASTDeclReader::VisitTemplateTypeParmDecl().
|
inline |
Set that this default argument was inherited from another parameter.
Definition at line 1105 of file DeclTemplate.h.
|
inline |
Whether this template type parameter was declared with the 'typename' keyword.
If not, it was declared with the 'class' keyword.
Definition at line 1072 of file DeclTemplate.h.
Referenced by clang::ASTDeclWriter::VisitTemplateTypeParmDecl(), and clang::ASTNodeImporter::VisitTemplateTypeParmDecl().
|
friend |
Sema creates these on the stack during auto type deduction.
Definition at line 1056 of file DeclTemplate.h.