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 149 of file ParsedTemplate.h.

Create()

static 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 178 of file ParsedTemplate.h.

Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTypeRequirement(), clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::BuildTypeConstraint(), clang::Sema::CheckTypeConstraint(), Create(), 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 165 of file ParsedTemplate.h.

RAngleLoc

The location of the '>' after the template argument list.

Definition at line 182 of file ParsedTemplate.h.

Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnDecompositionDeclarator(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTypeRequirement(), clang::Sema::ActOnVarTemplateSpecialization(), Create(), InventTemplateParameter(), makeTemplateArgumentListInfo(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::Parser::ParseUnqualifiedId(), clang::UnqualifiedId::setConstructorTemplateId(), clang::UnqualifiedId::setTemplateId(), and clang::Parser::TryAnnotateTypeOrScopeToken().

Template

TemplateKWLoc

TemplateNameLoc

TemplateNameLoc - The location of the template name within the source.

Definition at line 159 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(), InventTemplateParameter(), clang::Parser::ParseUnqualifiedId(), clang::UnqualifiedId::setConstructorTemplateId(), clang::UnqualifiedId::setTemplateId(), and clang::Parser::TryAnnotateTypeOrScopeToken().

TrailingObjects

friend clang::TemplateIdAnnotation::TrailingObjects


The documentation for this struct was generated from the following file: