clang  3.7.0
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 <TemplateName.h>

Inheritance diagram for clang::SubstTemplateTemplateParmPackStorage:
[legend]
Collaboration diagram for clang::SubstTemplateTemplateParmPackStorage:
[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 118 of file TemplateName.h.

Constructor & Destructor Documentation

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

Definition at line 125 of file TemplateName.h.

Member Function Documentation

TemplateArgument SubstTemplateTemplateParmPackStorage::getArgumentPack ( ) const

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

Definition at line 26 of file TemplateName.cpp.

Referenced by clang::ASTWriter::AddTemplateName(), clang::ASTContext::getCanonicalTemplateName(), and clang::ASTImporter::Import().

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

Retrieve the template template parameter pack being substituted.

Definition at line 132 of file TemplateName.h.

Referenced by clang::ASTWriter::AddTemplateName(), clang::ASTContext::getCanonicalTemplateName(), clang::ASTContext::getNameForTemplate(), and clang::ASTImporter::Import().

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

Definition at line 41 of file TemplateName.cpp.

References clang::Parameter.

Referenced by clang::ASTContext::getSubstTemplateTemplateParmPack().

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

Definition at line 46 of file TemplateName.cpp.

References clang::TemplateArgument::Profile().


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