clang API Documentation
Represents a reference to a non-type template parameter pack that has been substituted with a non-template argument pack. More...
#include <ExprCXX.h>


Public Member Functions | |
| SubstNonTypeTemplateParmPackExpr (QualType T, NonTypeTemplateParmDecl *Param, SourceLocation NameLoc, const TemplateArgument &ArgPack) | |
| NonTypeTemplateParmDecl * | getParameterPack () const |
| Retrieve the non-type template parameter pack being substituted. | |
| SourceLocation | getParameterPackLocation () const |
| Retrieve the location of the parameter pack name. | |
| TemplateArgument | getArgumentPack () const |
| Retrieve the template argument pack containing the substituted template arguments. | |
| SourceRange | getSourceRange () const LLVM_READONLY |
| child_range | children () |
Static Public Member Functions | |
| static bool | classof (const Stmt *T) |
| static bool | classof (const SubstNonTypeTemplateParmPackExpr *) |
Friends | |
| class | ASTReader |
| class | ASTStmtReader |
Represents a reference to a non-type template parameter pack that has been substituted with a non-template argument pack.
When a pack expansion in the source code contains multiple parameter packs and those parameter packs correspond to different levels of template parameter lists, this node node is used to represent a non-type template parameter pack from an outer level, which has already had its argument pack substituted but that still lives within a pack expansion that itself could not be instantiated. When actually performing a substitution into that pack expansion (e.g., when all template parameters have corresponding arguments), this type will be replaced with the appropriate underlying expression at the current pack substitution index.
| SubstNonTypeTemplateParmPackExpr::SubstNonTypeTemplateParmPackExpr | ( | QualType | T, |
| NonTypeTemplateParmDecl * | Param, | ||
| SourceLocation | NameLoc, | ||
| const TemplateArgument & | ArgPack | ||
| ) |
Definition at line 1272 of file ExprCXX.cpp.
| child_range clang::SubstNonTypeTemplateParmPackExpr::children | ( | ) | [inline] |
Reimplemented from clang::Stmt.
| static bool clang::SubstNonTypeTemplateParmPackExpr::classof | ( | const Stmt * | T | ) | [inline, static] |
Reimplemented from clang::Expr.
Definition at line 3580 of file ExprCXX.h.
References clang::Stmt::getStmtClass().
| static bool clang::SubstNonTypeTemplateParmPackExpr::classof | ( | const SubstNonTypeTemplateParmPackExpr * | ) | [inline, static] |
| TemplateArgument SubstNonTypeTemplateParmPackExpr::getArgumentPack | ( | ) | const |
Retrieve the template argument pack containing the substituted template arguments.
Definition at line 1281 of file ExprCXX.cpp.
| NonTypeTemplateParmDecl* clang::SubstNonTypeTemplateParmPackExpr::getParameterPack | ( | ) | const [inline] |
| SourceLocation clang::SubstNonTypeTemplateParmPackExpr::getParameterPackLocation | ( | ) | const [inline] |
| SourceRange clang::SubstNonTypeTemplateParmPackExpr::getSourceRange | ( | ) | const [inline] |
SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager. We assume AST clients will have a pointer to the respective SourceManager.
Reimplemented from clang::Stmt.
friend class ASTStmtReader [friend] |
Reimplemented from clang::Stmt.