clang API Documentation
Represents the parsed form of a C++ template argument. More...
#include <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 23 of file ParsedTemplate.h.
Describes the kind of template argument that was parsed.
| 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 26 of file ParsedTemplate.h.
Build an empty template argument.
This template argument is invalid.
Definition at line 38 of file ParsedTemplate.h.
| clang::ParsedTemplateArgument::ParsedTemplateArgument | ( | KindType | Kind, |
| void * | Arg, | ||
| SourceLocation | Loc | ||
| ) | [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 44 of file ParsedTemplate.h.
| clang::ParsedTemplateArgument::ParsedTemplateArgument | ( | const CXXScopeSpec & | SS, |
| ParsedTemplateTy | Template, | ||
| SourceLocation | TemplateLoc | ||
| ) | [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 56 of file ParsedTemplate.h.
| Expr* clang::ParsedTemplateArgument::getAsExpr | ( | ) | const [inline] |
Retrieve the non-type template argument's expression.
Definition at line 76 of file ParsedTemplate.h.
References NonType.
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
| ParsedTemplateTy clang::ParsedTemplateArgument::getAsTemplate | ( | ) | const [inline] |
Retrieve the template template argument's template name.
Definition at line 82 of file ParsedTemplate.h.
References clang::OpaquePtr< TemplateName >::getFromOpaquePtr(), and Template.
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
| ParsedType clang::ParsedTemplateArgument::getAsType | ( | ) | const [inline] |
Retrieve the template type argument's type.
Definition at line 70 of file ParsedTemplate.h.
References clang::OpaquePtr< QualType >::getFromOpaquePtr().
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
| SourceLocation clang::ParsedTemplateArgument::getEllipsisLoc | ( | ) | const [inline] |
Retrieve the location of the ellipsis that makes a template template argument into a pack expansion.
Definition at line 100 of file ParsedTemplate.h.
References Template.
Referenced by translateTemplateArgument().
| KindType clang::ParsedTemplateArgument::getKind | ( | ) | const [inline] |
Determine what kind of template argument we have.
Definition at line 67 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
| SourceLocation clang::ParsedTemplateArgument::getLocation | ( | ) | const [inline] |
Retrieve the location of the template argument.
Definition at line 88 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnPackExpansion(), and translateTemplateArgument().
| const CXXScopeSpec& clang::ParsedTemplateArgument::getScopeSpec | ( | ) | const [inline] |
Retrieve the nested-name-specifier that precedes the template name in a template template argument.
Definition at line 92 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 473 of file SemaTemplate.cpp.
Referenced by clang::Sema::ActOnPackExpansion().
| bool clang::ParsedTemplateArgument::isInvalid | ( | ) | const [inline] |
Determine whether the given template argument is invalid.
Definition at line 64 of file ParsedTemplate.h.
Referenced by clang::Sema::ActOnPackExpansion(), and clang::Sema::ActOnTemplateTemplateParameter().