|
clang 24.0.0git
|
A structure for storing an already-substituted template template parameter pack. More...
#include "clang/AST/TemplateName.h"
Static Public Member Functions | |
| static void | Profile (llvm::FoldingSetNodeID &ID, ASTContext &Context, const TemplateArgument &ArgPack, Decl *AssociatedDecl, unsigned Index, bool Final) |
Additional Inherited Members | |
| Protected Types inherited from clang::UncommonTemplateNameStorage | |
| enum | Kind { Overloaded , Assumed , Deduced , SubstTemplateTemplateParm , SubstTemplateTemplateParmPack , PackIndexing } |
| Protected Member Functions inherited from clang::UncommonTemplateNameStorage | |
| UncommonTemplateNameStorage (Kind Kind, unsigned Index, unsigned Data) | |
| Protected Attributes inherited from clang::UncommonTemplateNameStorage | |
| union { | |
| struct BitsTag Bits | |
| void * PointerAlignment | |
| }; | |
A structure for storing an already-substituted template template parameter pack.
This kind of template names occurs when the parameter pack has been provided with a template template argument pack in a context where its enclosing pack expansion could not be fully expanded.
Definition at line 179 of file TemplateName.h.
| SubstTemplateTemplateParmPackStorage::SubstTemplateTemplateParmPackStorage | ( | ArrayRef< TemplateArgument > | ArgPack, |
| Decl * | AssociatedDecl, | ||
| unsigned | Index, | ||
| bool | Final ) |
Definition at line 90 of file TemplateName.cpp.
References clang::UncommonTemplateNameStorage::SubstTemplateTemplateParmPack, and clang::UncommonTemplateNameStorage::UncommonTemplateNameStorage().
| TemplateArgument SubstTemplateTemplateParmPackStorage::getArgumentPack | ( | ) | const |
Retrieve the template template argument pack with which this parameter was substituted.
Definition at line 59 of file TemplateName.cpp.
References clang::UncommonTemplateNameStorage::Bits.
Referenced by clang::ASTContext::getCanonicalTemplateName(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
| Decl * SubstTemplateTemplateParmPackStorage::getAssociatedDecl | ( | ) | const |
A template-like entity which owns the whole pattern being substituted.
This will own a set of template parameters.
Definition at line 105 of file TemplateName.cpp.
Referenced by clang::ASTContext::getCanonicalTemplateName(), getParameterPack(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
| bool SubstTemplateTemplateParmPackStorage::getFinal | ( | ) | const |
Definition at line 109 of file TemplateName.cpp.
Referenced by clang::ASTContext::getCanonicalTemplateName(), clang::ASTImporter::Import(), and Profile().
|
inline |
Returns the index of the replaced parameter in the associated declaration.
This should match the result of getParameterPack()->getIndex().
Definition at line 195 of file TemplateName.h.
References clang::UncommonTemplateNameStorage::Bits.
Referenced by clang::ASTContext::getCanonicalTemplateName(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
| TemplateTemplateParmDecl * SubstTemplateTemplateParmPackStorage::getParameterPack | ( | ) | const |
Retrieve the template template parameter pack being substituted.
Definition at line 64 of file TemplateName.cpp.
References clang::UncommonTemplateNameStorage::Bits, clang::cast(), getAssociatedDecl(), and clang::getReplacedTemplateParameter().
Referenced by clang::ASTContext::getNameForTemplate().
| void SubstTemplateTemplateParmPackStorage::Profile | ( | llvm::FoldingSetNodeID & | ID, |
| ASTContext & | Context ) |
Definition at line 99 of file TemplateName.cpp.
References getArgumentPack(), getAssociatedDecl(), getFinal(), getIndex(), and Profile().
Referenced by clang::ASTContext::getSubstTemplateTemplateParmPack(), and Profile().
|
static |
Definition at line 113 of file TemplateName.cpp.
References clang::TemplateArgument::Profile().