clang  5.0.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::TemplateIdAnnotation Struct Referencefinal

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

#include "clang/Sema/ParsedTemplate.h"

Inheritance diagram for clang::TemplateIdAnnotation:
[legend]
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 TemplateIdAnnotationCreate (CXXScopeSpec SS, SourceLocation TemplateKWLoc, SourceLocation TemplateNameLoc, IdentifierInfo *Name, OverloadedOperatorKind OperatorKind, ParsedTemplateTy OpaqueTemplateName, TemplateNameKind TemplateKind, SourceLocation LAngleLoc, SourceLocation RAngleLoc, ArrayRef< ParsedTemplateArgument > TemplateArgs, SmallVectorImpl< TemplateIdAnnotation * > &CleanupList)
 Creates a new TemplateIdAnnotation with NumArgs arguments and appends it to List. More...
 

Public Attributes

friend TrailingObjects
 
CXXScopeSpec SS
 The nested-name-specifier that precedes the template name. More...
 
SourceLocation TemplateKWLoc
 TemplateKWLoc - The location of the template keyword. More...
 
SourceLocation TemplateNameLoc
 TemplateNameLoc - The location of the template name within the source. More...
 
IdentifierInfoName
 FIXME: Temporarily stores the name of a specialization. More...
 
OverloadedOperatorKind Operator
 FIXME: Temporarily stores the overloaded operator kind. More...
 
ParsedTemplateTy Template
 The declaration of the template corresponding to the template-name. More...
 
TemplateNameKind Kind
 The kind of template that Template refers to. More...
 
SourceLocation LAngleLoc
 The location of the '<' before the template argument list. More...
 
SourceLocation RAngleLoc
 The location of the '>' after the template argument list. More...
 
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 148 of file ParsedTemplate.h.

Member Function Documentation

static TemplateIdAnnotation* clang::TemplateIdAnnotation::Create ( CXXScopeSpec  SS,
SourceLocation  TemplateKWLoc,
SourceLocation  TemplateNameLoc,
IdentifierInfo Name,
OverloadedOperatorKind  OperatorKind,
ParsedTemplateTy  OpaqueTemplateName,
TemplateNameKind  TemplateKind,
SourceLocation  LAngleLoc,
SourceLocation  RAngleLoc,
ArrayRef< ParsedTemplateArgument TemplateArgs,
SmallVectorImpl< TemplateIdAnnotation * > &  CleanupList 
)
inlinestatic

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

Definition at line 195 of file ParsedTemplate.h.

void clang::TemplateIdAnnotation::Destroy ( )
inline

Definition at line 212 of file ParsedTemplate.h.

References getTemplateArgs(), and NumArgs.

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

Member Data Documentation

TemplateNameKind clang::TemplateIdAnnotation::Kind
SourceLocation clang::TemplateIdAnnotation::LAngleLoc
IdentifierInfo* clang::TemplateIdAnnotation::Name
unsigned clang::TemplateIdAnnotation::NumArgs
OverloadedOperatorKind clang::TemplateIdAnnotation::Operator

FIXME: Temporarily stores the overloaded operator kind.

Definition at line 167 of file ParsedTemplate.h.

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

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

Definition at line 153 of file ParsedTemplate.h.

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

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

TemplateKWLoc - The location of the template keyword.

For e.g. typename T::template Y<U>

Definition at line 157 of file ParsedTemplate.h.

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

SourceLocation clang::TemplateIdAnnotation::TemplateNameLoc
friend clang::TemplateIdAnnotation::TrailingObjects

Definition at line 151 of file ParsedTemplate.h.


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