clang API Documentation
Represents the result of substituting a set of types for a template type parameter pack. More...
#include <Type.h>


Public Member Functions | |
| IdentifierInfo * | getIdentifier () const |
| const TemplateTypeParmType * | getReplacedParameter () const |
| Gets the template parameter that was substituted for. | |
| bool | isSugared () const |
| QualType | desugar () const |
| TemplateArgument | getArgumentPack () const |
| void | Profile (llvm::FoldingSetNodeID &ID) |
Static Public Member Functions | |
| static void | Profile (llvm::FoldingSetNodeID &ID, const TemplateTypeParmType *Replaced, const TemplateArgument &ArgPack) |
| static bool | classof (const Type *T) |
Friends | |
| class | ASTContext |
Represents the result of substituting a set of types for a template type parameter 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 type node is used to represent a template type 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 SubstTemplateTypeParmType at the current pack substitution index.
| static bool clang::SubstTemplateTypeParmPackType::classof | ( | const Type * | T | ) | [inline, static] |
Definition at line 3665 of file Type.h.
References clang::Type::getTypeClass().
| QualType clang::SubstTemplateTypeParmPackType::desugar | ( | ) | const [inline] |
Definition at line 1961 of file Type.cpp.
Referenced by IsStructurallyEquivalent(), MarkUsedTemplateParameters(), and Profile().
| IdentifierInfo* clang::SubstTemplateTypeParmPackType::getIdentifier | ( | ) | const [inline] |
| const TemplateTypeParmType* clang::SubstTemplateTypeParmPackType::getReplacedParameter | ( | ) | const [inline] |
Gets the template parameter that was substituted for.
Definition at line 3651 of file Type.h.
Referenced by IsStructurallyEquivalent(), MarkUsedTemplateParameters(), and Profile().
| bool clang::SubstTemplateTypeParmPackType::isSugared | ( | ) | const [inline] |
| void SubstTemplateTypeParmPackType::Profile | ( | llvm::FoldingSetNodeID & | ID | ) |
Definition at line 1965 of file Type.cpp.
References getArgumentPack(), and getReplacedParameter().
Referenced by clang::ASTContext::getSubstTemplateTypeParmPackType().
| void SubstTemplateTypeParmPackType::Profile | ( | llvm::FoldingSetNodeID & | ID, |
| const TemplateTypeParmType * | Replaced, | ||
| const TemplateArgument & | ArgPack | ||
| ) | [static] |
Definition at line 1969 of file Type.cpp.
References P, clang::TemplateArgument::pack_elements(), and clang::TemplateArgument::pack_size().
friend class ASTContext [friend] |
Reimplemented from clang::Type.