clang API Documentation

Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
clang::UncommonTemplateNameStorage Class Reference

Implementation class used to describe either a set of overloaded template names or an already-substituted template template parameter pack. More...

#include <TemplateName.h>

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

List of all members.

Public Member Functions

unsigned size () const
OverloadedTemplateStoragegetAsOverloadedStorage ()
SubstTemplateTemplateParmStoragegetAsSubstTemplateTemplateParm ()
SubstTemplateTemplateParmPackStoragegetAsSubstTemplateTemplateParmPack ()

Protected Types

enum  Kind { Overloaded, SubstTemplateTemplateParm, SubstTemplateTemplateParmPack }

Protected Member Functions

 UncommonTemplateNameStorage (Kind kind, unsigned size)

Protected Attributes

union {
   struct {
      unsigned   Kind: 2
 A Kind.
      unsigned   Size: 30
 The number of stored templates or template arguments, depending on which subclass we have.
   }   Bits
   void *   PointerAlignment
}; 

Detailed Description

Implementation class used to describe either a set of overloaded template names or an already-substituted template template parameter pack.

Definition at line 41 of file TemplateName.h.


Member Enumeration Documentation

Enumerator:
Overloaded 
SubstTemplateTemplateParm 
SubstTemplateTemplateParmPack 

Definition at line 43 of file TemplateName.h.


Constructor & Destructor Documentation

clang::UncommonTemplateNameStorage::UncommonTemplateNameStorage ( Kind  kind,
unsigned  size 
) [inline, protected]

Definition at line 62 of file TemplateName.h.

References Bits, and size().


Member Function Documentation

OverloadedTemplateStorage* clang::UncommonTemplateNameStorage::getAsOverloadedStorage ( ) [inline]

Definition at line 70 of file TemplateName.h.

References Bits, and Overloaded.

Referenced by clang::TemplateName::getAsOverloadedTemplate(), and clang::TemplateName::getKind().

SubstTemplateTemplateParmStorage* clang::UncommonTemplateNameStorage::getAsSubstTemplateTemplateParm ( ) [inline]
SubstTemplateTemplateParmPackStorage* clang::UncommonTemplateNameStorage::getAsSubstTemplateTemplateParmPack ( ) [inline]
unsigned clang::UncommonTemplateNameStorage::size ( ) const [inline]

Member Data Documentation

union { ... } [protected]

A Kind.

Definition at line 52 of file TemplateName.h.

Definition at line 59 of file TemplateName.h.

The number of stored templates or template arguments, depending on which subclass we have.

Definition at line 56 of file TemplateName.h.


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