clang  3.7.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::TemplateIdAnnotation Struct Reference

Information about a template-id annotation token. More...

#include <ParsedTemplate.h>

Collaboration diagram for clang::TemplateIdAnnotation:
[legend]

Public Member Functions

ParsedTemplateArgumentgetTemplateArgs ()
 Retrieves a pointer to the template arguments. More...
 
void Destroy ()
 

Static Public Member Functions

static TemplateIdAnnotationAllocate (unsigned NumArgs, SmallVectorImpl< TemplateIdAnnotation * > &List)
 Creates a new TemplateIdAnnotation with NumArgs arguments and appends it to List. More...
 

Public Attributes

CXXScopeSpec SS
 The nested-name-specifier that precedes the template name. More...
 
SourceLocation TemplateKWLoc
 
SourceLocation TemplateNameLoc
 
IdentifierInfoName
 FIXME: Temporarily stores the name of a specialization. More...
 
OverloadedOperatorKind Operator
 FIXME: Temporarily stores the overloaded operator kind. More...
 
ParsedTemplateTy Template
 
TemplateNameKind Kind
 The kind of template that Template refers to. More...
 
SourceLocation LAngleLoc
 
SourceLocation RAngleLoc
 
unsigned NumArgs
 NumArgs - The number of template arguments. More...
 

Detailed Description

Information about a template-id annotation token.

A template-id annotation token contains the template declaration, template arguments, whether those template arguments were types, expressions, or template names, and the source locations for important tokens. All of the information about template arguments is allocated directly after this structure.

Definition at line 141 of file ParsedTemplate.h.

Member Function Documentation

static TemplateIdAnnotation* clang::TemplateIdAnnotation::Allocate ( unsigned  NumArgs,
SmallVectorImpl< TemplateIdAnnotation * > &  List 
)
inlinestatic

Creates a new TemplateIdAnnotation with NumArgs arguments and appends it to List.

Definition at line 185 of file ParsedTemplate.h.

References getTemplateArgs(), NumArgs, and SS.

void clang::TemplateIdAnnotation::Destroy ( )
inline

Definition at line 203 of file ParsedTemplate.h.

References SS.

ParsedTemplateArgument* clang::TemplateIdAnnotation::getTemplateArgs ( )
inline

Member Data Documentation

TemplateNameKind clang::TemplateIdAnnotation::Kind
SourceLocation clang::TemplateIdAnnotation::LAngleLoc
IdentifierInfo* clang::TemplateIdAnnotation::Name

FIXME: Temporarily stores the name of a specialization.

Definition at line 154 of file ParsedTemplate.h.

Referenced by clang::Sema::GetNameFromUnqualifiedId(), and clang::Parser::ParseUnqualifiedId().

unsigned clang::TemplateIdAnnotation::NumArgs
OverloadedOperatorKind clang::TemplateIdAnnotation::Operator

FIXME: Temporarily stores the overloaded operator kind.

Definition at line 157 of file ParsedTemplate.h.

SourceLocation clang::TemplateIdAnnotation::RAngleLoc
CXXScopeSpec clang::TemplateIdAnnotation::SS

The nested-name-specifier that precedes the template name.

Definition at line 143 of file ParsedTemplate.h.

Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnPseudoDestructorExpr(), Allocate(), and Destroy().

ParsedTemplateTy clang::TemplateIdAnnotation::Template
SourceLocation clang::TemplateIdAnnotation::TemplateKWLoc

TemplateKWLoc - The location of the template keyword within the source.

Definition at line 147 of file ParsedTemplate.h.

Referenced by clang::Sema::ActOnPseudoDestructorExpr(), clang::Parser::ParseUnqualifiedId(), and clang::Parser::TryAnnotateTypeOrScopeToken().

SourceLocation clang::TemplateIdAnnotation::TemplateNameLoc

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