clang  6.0.0svn
Public Member Functions | Static Public Member Functions | List of all members
clang::SubstTemplateTemplateParmPackStorage Class Reference

A structure for storing an already-substituted template template parameter pack. More...

#include "clang/AST/TemplateName.h"

Inheritance diagram for clang::SubstTemplateTemplateParmPackStorage:
Inheritance graph
[legend]
Collaboration diagram for clang::SubstTemplateTemplateParmPackStorage:
Collaboration graph
[legend]

Public Member Functions

 SubstTemplateTemplateParmPackStorage (TemplateTemplateParmDecl *Parameter, unsigned Size, const TemplateArgument *Arguments)
 
TemplateTemplateParmDeclgetParameterPack () const
 Retrieve the template template parameter pack being substituted. More...
 
TemplateArgument getArgumentPack () const
 Retrieve the template template argument pack with which this parameter was substituted. More...
 
void Profile (llvm::FoldingSetNodeID &ID, ASTContext &Context)
 
- Public Member Functions inherited from clang::UncommonTemplateNameStorage
unsigned size () const
 
OverloadedTemplateStoragegetAsOverloadedStorage ()
 
SubstTemplateTemplateParmStoragegetAsSubstTemplateTemplateParm ()
 
SubstTemplateTemplateParmPackStoragegetAsSubstTemplateTemplateParmPack ()
 

Static Public Member Functions

static void Profile (llvm::FoldingSetNodeID &ID, ASTContext &Context, TemplateTemplateParmDecl *Parameter, const TemplateArgument &ArgPack)
 

Additional Inherited Members

- Protected Types inherited from clang::UncommonTemplateNameStorage
enum  Kind { Overloaded, SubstTemplateTemplateParm, SubstTemplateTemplateParmPack }
 
- Protected Member Functions inherited from clang::UncommonTemplateNameStorage
 UncommonTemplateNameStorage (Kind kind, unsigned size)
 
- Protected Attributes inherited from clang::UncommonTemplateNameStorage
union {
   struct BitsTag   Bits
 
   void *   PointerAlignment
 
}; 
 

Detailed Description

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 121 of file TemplateName.h.

Constructor & Destructor Documentation

◆ SubstTemplateTemplateParmPackStorage()

clang::SubstTemplateTemplateParmPackStorage::SubstTemplateTemplateParmPackStorage ( TemplateTemplateParmDecl Parameter,
unsigned  Size,
const TemplateArgument Arguments 
)
inline

Definition at line 128 of file TemplateName.h.

Member Function Documentation

◆ getArgumentPack()

TemplateArgument SubstTemplateTemplateParmPackStorage::getArgumentPack ( ) const

Retrieve the template template argument pack with which this parameter was substituted.

Definition at line 35 of file TemplateName.cpp.

References clang::UncommonTemplateNameStorage::size().

◆ getParameterPack()

TemplateTemplateParmDecl* clang::SubstTemplateTemplateParmPackStorage::getParameterPack ( ) const
inline

Retrieve the template template parameter pack being substituted.

Definition at line 135 of file TemplateName.h.

References clang::Parameter.

◆ Profile() [1/2]

void SubstTemplateTemplateParmPackStorage::Profile ( llvm::FoldingSetNodeID &  ID,
ASTContext Context 
)

◆ Profile() [2/2]

void SubstTemplateTemplateParmPackStorage::Profile ( llvm::FoldingSetNodeID &  ID,
ASTContext Context,
TemplateTemplateParmDecl Parameter,
const TemplateArgument ArgPack 
)
static

Definition at line 55 of file TemplateName.cpp.


The documentation for this class was generated from the following files: