clang 20.0.0git
|
Represents the parsed form of a C++ template argument. More...
#include "clang/Sema/ParsedTemplate.h"
Public Types | |
enum | KindType { Type , NonType , Template } |
Describes the kind of template argument that was parsed. More... | |
Public Member Functions | |
ParsedTemplateArgument () | |
Build an empty template argument. | |
ParsedTemplateArgument (KindType Kind, void *Arg, SourceLocation Loc) | |
Create a template type argument or non-type template argument. | |
ParsedTemplateArgument (const CXXScopeSpec &SS, ParsedTemplateTy Template, SourceLocation TemplateLoc) | |
Create a template template argument. | |
bool | isInvalid () const |
Determine whether the given template argument is invalid. | |
KindType | getKind () const |
Determine what kind of template argument we have. | |
ParsedType | getAsType () const |
Retrieve the template type argument's type. | |
Expr * | getAsExpr () const |
Retrieve the non-type template argument's expression. | |
ParsedTemplateTy | getAsTemplate () const |
Retrieve the template template argument's template name. | |
SourceLocation | getLocation () const |
Retrieve the location of the template argument. | |
const CXXScopeSpec & | getScopeSpec () const |
Retrieve the nested-name-specifier that precedes the template name in a template template argument. | |
SourceLocation | getEllipsisLoc () const |
Retrieve the location of the ellipsis that makes a template template argument into a pack expansion. | |
ParsedTemplateArgument | getTemplatePackExpansion (SourceLocation EllipsisLoc) const |
Retrieve a pack expansion of the given template template argument. | |
Represents the parsed form of a C++ template argument.
Definition at line 29 of file ParsedTemplate.h.
Describes the kind of template argument that was parsed.
Enumerator | |
---|---|
Type | A template type parameter, stored as a type. |
NonType | A non-type template parameter, stored as an expression. |
Template | A template template argument, stored as a template name. |
Definition at line 32 of file ParsedTemplate.h.
|
inline |
Build an empty template argument.
This template argument is invalid.
Definition at line 44 of file ParsedTemplate.h.
|
inline |
Create a template type argument or non-type template argument.
Arg | the template type argument or non-type template argument. |
Loc | the location of the type. |
Definition at line 50 of file ParsedTemplate.h.
References Loc.
|
inline |
Create a template template argument.
SS | the C++ scope specifier that precedes the template name, if any. |
Template | the template to which this template template argument refers. |
TemplateLoc | the location of the template name. |
Definition at line 62 of file ParsedTemplate.h.
|
inline |
Retrieve the non-type template argument's expression.
Definition at line 81 of file ParsedTemplate.h.
References NonType.
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
|
inline |
Retrieve the template template argument's template name.
Definition at line 87 of file ParsedTemplate.h.
References clang::OpaquePtr< TemplateName >::getFromOpaquePtr(), and Template.
Referenced by clang::Sema::ActOnPackExpansion(), getTemplatePackExpansion(), and translateTemplateArgument().
|
inline |
Retrieve the template type argument's type.
Definition at line 75 of file ParsedTemplate.h.
References clang::OpaquePtr< QualType >::getFromOpaquePtr().
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
|
inline |
Retrieve the location of the ellipsis that makes a template template argument into a pack expansion.
Definition at line 105 of file ParsedTemplate.h.
References Template.
Referenced by translateTemplateArgument().
|
inline |
Determine what kind of template argument we have.
Definition at line 72 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnPackExpansion(), argMatchesTemplateParams(), and translateTemplateArgument().
|
inline |
Retrieve the location of the template argument.
Definition at line 93 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
|
inline |
Retrieve the nested-name-specifier that precedes the template name in a template template argument.
Definition at line 97 of file ParsedTemplate.h.
References Template.
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
ParsedTemplateArgument ParsedTemplateArgument::getTemplatePackExpansion | ( | SourceLocation | EllipsisLoc | ) | const |
Retrieve a pack expansion of the given template template argument.
EllipsisLoc | The location of the ellipsis. |
Definition at line 888 of file SemaTemplate.cpp.
References getAsTemplate(), clang::Result, and Template.
Referenced by clang::Sema::ActOnPackExpansion().
|
inline |
Determine whether the given template argument is invalid.
Definition at line 69 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnPackExpansion().