clang 24.0.0git
clang::PackIndexingTemplateStorage Class Referencefinal

A structure for storing a pack-index-template-name ([temp.names]). More...

#include "clang/AST/TemplateName.h"

Inheritance diagram for clang::PackIndexingTemplateStorage:
[legend]

Public Member Functions

TemplateName getPattern () const
ExprgetIndexExpr () const
bool isFullySubstituted () const
ArrayRef< TemplateNamegetExpansions () const
TemplateTemplateParmDeclgetParameterPack () const
UnsignedOrNone getSelectedIndex () const
TemplateName getSelectedTemplate () const
bool expandsToEmptyPack () const
TemplateNameDependence getDependence () const
void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context) const
Public Member Functions inherited from clang::UncommonTemplateNameStorage
OverloadedTemplateStoragegetAsOverloadedStorage ()
AssumedTemplateStoragegetAsAssumedTemplateName ()
DeducedTemplateStoragegetAsDeducedTemplateName ()
SubstTemplateTemplateParmStoragegetAsSubstTemplateTemplateParm ()
SubstTemplateTemplateParmPackStoragegetAsSubstTemplateTemplateParmPack ()
PackIndexingTemplateStoragegetAsPackIndexingTemplate ()

Static Public Member Functions

static void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, TemplateName Pattern, Expr *IndexExpr, bool FullySubstituted, ArrayRef< TemplateName > Expansions)

Friends

class ASTContext

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 
}; 

Detailed Description

A structure for storing a pack-index-template-name ([temp.names]).

C++29 [temp.names]p1: pack-index-template-name: simple-template-name ... [ constant-expression ]

Definition at line 534 of file TemplateName.h.

Member Function Documentation

◆ expandsToEmptyPack()

bool clang::PackIndexingTemplateStorage::expandsToEmptyPack ( ) const
inline

Definition at line 570 of file TemplateName.h.

References isFullySubstituted().

◆ getDependence()

TemplateNameDependence PackIndexingTemplateStorage::getDependence ( ) const

◆ getExpansions()

◆ getIndexExpr()

◆ getParameterPack()

TemplateTemplateParmDecl * PackIndexingTemplateStorage::getParameterPack ( ) const

◆ getPattern()

◆ getSelectedIndex()

UnsignedOrNone PackIndexingTemplateStorage::getSelectedIndex ( ) const

Definition at line 142 of file TemplateName.cpp.

References getIndexExpr().

Referenced by clang::TextNodeDumper::dumpBareTemplateName(), and getSelectedTemplate().

◆ getSelectedTemplate()

TemplateName PackIndexingTemplateStorage::getSelectedTemplate ( ) const

◆ isFullySubstituted()

bool clang::PackIndexingTemplateStorage::isFullySubstituted ( ) const
inline

◆ Profile() [1/2]

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

◆ Profile() [2/2]

void PackIndexingTemplateStorage::Profile ( llvm::FoldingSetNodeID & ID,
const ASTContext & Context,
TemplateName Pattern,
Expr * IndexExpr,
bool FullySubstituted,
ArrayRef< TemplateName > Expansions )
static

Definition at line 198 of file TemplateName.cpp.

References ASTContext, clang::Stmt::Profile(), and clang::T.

◆ ASTContext

friend class ASTContext
friend

Definition at line 538 of file TemplateName.h.

References ASTContext, and clang::UncommonTemplateNameStorage::Bits.

Referenced by ASTContext, Profile(), and Profile().


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