clang  6.0.0svn
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:
Inheritance graph
[legend]
Collaboration diagram for clang::TemplateIdAnnotation:
Collaboration graph
[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

◆ Create()

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.

◆ Destroy()

void clang::TemplateIdAnnotation::Destroy ( )
inline

Definition at line 212 of file ParsedTemplate.h.

◆ getTemplateArgs()

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

Retrieves a pointer to the template arguments.

Definition at line 188 of file ParsedTemplate.h.

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

Member Data Documentation

◆ Kind

TemplateNameKind clang::TemplateIdAnnotation::Kind

The kind of template that Template refers to.

Definition at line 174 of file ParsedTemplate.h.

Referenced by clang::Parser::TryAnnotateTypeOrScopeToken(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().

◆ LAngleLoc

SourceLocation clang::TemplateIdAnnotation::LAngleLoc

◆ Name

IdentifierInfo* clang::TemplateIdAnnotation::Name

FIXME: Temporarily stores the name of a specialization.

Definition at line 164 of file ParsedTemplate.h.

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

◆ NumArgs

unsigned clang::TemplateIdAnnotation::NumArgs

NumArgs - The number of template arguments.

Definition at line 185 of file ParsedTemplate.h.

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

◆ Operator

OverloadedOperatorKind clang::TemplateIdAnnotation::Operator

FIXME: Temporarily stores the overloaded operator kind.

Definition at line 167 of file ParsedTemplate.h.

◆ RAngleLoc

SourceLocation clang::TemplateIdAnnotation::RAngleLoc

◆ SS

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().

◆ Template

ParsedTemplateTy clang::TemplateIdAnnotation::Template

The declaration of the template corresponding to the template-name.

Definition at line 171 of file ParsedTemplate.h.

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

◆ TemplateKWLoc

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().

◆ TemplateNameLoc

SourceLocation clang::TemplateIdAnnotation::TemplateNameLoc

◆ TrailingObjects

friend clang::TemplateIdAnnotation::TrailingObjects

Definition at line 151 of file ParsedTemplate.h.


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