|
clang 22.0.0git
|
A structure for storing an already-substituted template template parameter pack. More...
#include "clang/AST/TemplateName.h"
Public Member Functions | |
| SubstTemplateTemplateParmPackStorage (ArrayRef< TemplateArgument > ArgPack, Decl *AssociatedDecl, unsigned Index, bool Final) | |
| Decl * | getAssociatedDecl () const |
| A template-like entity which owns the whole pattern being substituted. | |
| unsigned | getIndex () const |
| Returns the index of the replaced parameter in the associated declaration. | |
| bool | getFinal () const |
| TemplateTemplateParmDecl * | getParameterPack () const |
| Retrieve the template template parameter pack being substituted. | |
| TemplateArgument | getArgumentPack () const |
| Retrieve the template template argument pack with which this parameter was substituted. | |
| void | Profile (llvm::FoldingSetNodeID &ID, ASTContext &Context) |
| Public Member Functions inherited from clang::UncommonTemplateNameStorage | |
| OverloadedTemplateStorage * | getAsOverloadedStorage () |
| AssumedTemplateStorage * | getAsAssumedTemplateName () |
| DeducedTemplateStorage * | getAsDeducedTemplateName () |
| SubstTemplateTemplateParmStorage * | getAsSubstTemplateTemplateParm () |
| SubstTemplateTemplateParmPackStorage * | getAsSubstTemplateTemplateParmPack () |
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 } |
| 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 150 of file TemplateName.h.
| SubstTemplateTemplateParmPackStorage::SubstTemplateTemplateParmPackStorage | ( | ArrayRef< TemplateArgument > | ArgPack, |
| Decl * | AssociatedDecl, | ||
| unsigned | Index, | ||
| bool | Final ) |
Definition at line 92 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 61 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 107 of file TemplateName.cpp.
Referenced by clang::ASTContext::getCanonicalTemplateName(), getParameterPack(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
| bool SubstTemplateTemplateParmPackStorage::getFinal | ( | ) | const |
Definition at line 111 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 166 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 66 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 101 of file TemplateName.cpp.
References getArgumentPack(), getAssociatedDecl(), getFinal(), getIndex(), and Profile().
Referenced by clang::ASTContext::getSubstTemplateTemplateParmPack(), and Profile().
|
static |
Definition at line 115 of file TemplateName.cpp.
References clang::TemplateArgument::Profile().