clang  10.0.0git
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 (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
 
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 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<C T>" would annotate C as a TemplateIdAnnotation with no template arguments (the angle locations would be invalid in this case).

Definition at line 150 of file ParsedTemplate.h.

Member Function Documentation

◆ Create()

static TemplateIdAnnotation* clang::TemplateIdAnnotation::Create ( 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 194 of file ParsedTemplate.h.

◆ Destroy()

void clang::TemplateIdAnnotation::Destroy ( )
inline

Definition at line 209 of file ParsedTemplate.h.

◆ getTemplateArgs()

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

Member Data Documentation

◆ Kind

TemplateNameKind clang::TemplateIdAnnotation::Kind

The kind of template that Template refers to.

Definition at line 173 of file ParsedTemplate.h.

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

◆ LAngleLoc

SourceLocation clang::TemplateIdAnnotation::LAngleLoc

◆ Name

IdentifierInfo* clang::TemplateIdAnnotation::Name

◆ NumArgs

unsigned clang::TemplateIdAnnotation::NumArgs

◆ Operator

OverloadedOperatorKind clang::TemplateIdAnnotation::Operator

FIXME: Temporarily stores the overloaded operator kind.

Definition at line 166 of file ParsedTemplate.h.

◆ RAngleLoc

SourceLocation clang::TemplateIdAnnotation::RAngleLoc

◆ Template

ParsedTemplateTy clang::TemplateIdAnnotation::Template

◆ TemplateKWLoc

SourceLocation clang::TemplateIdAnnotation::TemplateKWLoc

TemplateKWLoc - The location of the template keyword.

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

Definition at line 156 of file ParsedTemplate.h.

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

◆ TemplateNameLoc

SourceLocation clang::TemplateIdAnnotation::TemplateNameLoc

◆ TrailingObjects

friend clang::TemplateIdAnnotation::TrailingObjects

Definition at line 153 of file ParsedTemplate.h.


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