clang: clang::TemplateIdAnnotation Struct Reference (original) (raw)
Information about a template-id annotation token. More...
#include "[clang/Sema/ParsedTemplate.h](ParsedTemplate%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| ParsedTemplateArgument * | getTemplateArgs () |
| Retrieves a pointer to the template arguments. | |
| void | Destroy () |
| bool | mightBeType () const |
| Determine whether this might be a type template. | |
| bool | hasInvalidName () const |
| bool | hasInvalidArgs () const |
| bool | isInvalid () const |
| Static Public Member Functions | |
|---|---|
| static TemplateIdAnnotation * | Create (SourceLocation TemplateKWLoc, SourceLocation TemplateNameLoc, const IdentifierInfo *Name, OverloadedOperatorKind OperatorKind, ParsedTemplateTy OpaqueTemplateName, TemplateNameKind TemplateKind, SourceLocation LAngleLoc, SourceLocation RAngleLoc, ArrayRef< ParsedTemplateArgument > TemplateArgs, bool ArgsInvalid, SmallVectorImpl< TemplateIdAnnotation * > &CleanupList) |
| Creates a new TemplateIdAnnotation with NumArgs arguments and appends it to List. |
| Public Attributes | |
|---|---|
| friend | TrailingObjects |
| SourceLocation | TemplateKWLoc |
| TemplateKWLoc - The location of the template keyword. | |
| SourceLocation | TemplateNameLoc |
| TemplateNameLoc - The location of the template name within the source. | |
| const IdentifierInfo * | Name |
| FIXME: Temporarily stores the name of a specialization. | |
| OverloadedOperatorKind | Operator |
| FIXME: Temporarily stores the overloaded operator kind. | |
| ParsedTemplateTy | Template |
| The declaration of the template corresponding to the template-name. | |
| TemplateNameKind | Kind |
| The kind of template that Template refers to. | |
| SourceLocation | LAngleLoc |
| The location of the '<' before the template argument list. | |
| SourceLocation | RAngleLoc |
| The location of the '>' after the template argument list. | |
| unsigned | NumArgs |
| NumArgs - The number of template arguments. | |
| bool | ArgsInvalid |
| Whether an error was encountered in the template arguments. |
Information about a template-id annotation token.
A template-id annotation token contains the template name, template arguments, and the source locations for important tokens. All of the information about template arguments is allocated directly after this structure. A template-id annotation token can also be generated by a type-constraint construct with no explicit template arguments, e.g. "template" would annotate C as a TemplateIdAnnotation with no template arguments (the angle locations would be invalid in this case).
Definition at line 156 of file ParsedTemplate.h.
◆ Create()
| TemplateIdAnnotation * clang::TemplateIdAnnotation::Create ( SourceLocation TemplateKWLoc, SourceLocation TemplateNameLoc, const IdentifierInfo * Name, OverloadedOperatorKind OperatorKind, ParsedTemplateTy OpaqueTemplateName, TemplateNameKind TemplateKind, SourceLocation LAngleLoc, SourceLocation RAngleLoc, ArrayRef< ParsedTemplateArgument > TemplateArgs, bool ArgsInvalid, SmallVectorImpl< TemplateIdAnnotation * > & CleanupList ) | inlinestatic |
|---|
◆ Destroy()
| void clang::TemplateIdAnnotation::Destroy ( ) | inline |
|---|
◆ getTemplateArgs()
◆ hasInvalidArgs()
| bool clang::TemplateIdAnnotation::hasInvalidArgs ( ) const | inline |
|---|
◆ hasInvalidName()
| bool clang::TemplateIdAnnotation::hasInvalidName ( ) const | inline |
|---|
◆ isInvalid()
| bool clang::TemplateIdAnnotation::isInvalid ( ) const | inline |
|---|
◆ mightBeType()
| bool clang::TemplateIdAnnotation::mightBeType ( ) const | inline |
|---|
◆ ArgsInvalid
bool clang::TemplateIdAnnotation::ArgsInvalid
◆ Kind
◆ LAngleLoc
The location of the '<' before the template argument list.
Definition at line 185 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTypeRequirement(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::BuildTypeConstraint(), clang::Sema::CheckTypeConstraint(), Create(), clang::Sema::DecomposeUnqualifiedId(), InventTemplateParameter(), makeTemplateArgumentListInfo(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::Parser::ParseUnqualifiedId(), and clang::Parser::TryAnnotateTypeOrScopeToken().
◆ Name
◆ NumArgs
unsigned clang::TemplateIdAnnotation::NumArgs
◆ Operator
FIXME: Temporarily stores the overloaded operator kind.
Definition at line 172 of file ParsedTemplate.h.
◆ RAngleLoc
The location of the '>' after the template argument list.
Definition at line 189 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnDecompositionDeclarator(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTypeRequirement(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnVarTemplateSpecialization(), Create(), clang::Sema::DecomposeUnqualifiedId(), InventTemplateParameter(), makeTemplateArgumentListInfo(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::Parser::ParseUnqualifiedId(), and clang::Parser::TryAnnotateTypeOrScopeToken().
◆ Template
◆ TemplateKWLoc
◆ TemplateNameLoc
TemplateNameLoc - The location of the template name within the source.
Definition at line 166 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnDecompositionDeclarator(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTypeRequirement(), clang::Sema::BuildTypeConstraint(), clang::Sema::CheckTypeConstraint(), Create(), clang::Sema::DecomposeUnqualifiedId(), clang::Sema::GetNameFromUnqualifiedId(), InventTemplateParameter(), clang::Parser::ParseUnqualifiedId(), and clang::Parser::TryAnnotateTypeOrScopeToken().
◆ TrailingObjects
friend clang::TemplateIdAnnotation::TrailingObjects
The documentation for this struct was generated from the following file:
- include/clang/Sema/ParsedTemplate.h