clang API Documentation

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
clang::TemplateParameterList Class Reference

Stores a list of template parameters for a TemplateDecl and its derived classes. More...

#include <DeclTemplate.h>

Inheritance diagram for clang::TemplateParameterList:
Inheritance graph
[legend]

List of all members.

Public Types

typedef NamedDecl ** iterator
 Iterates through the template parameters in this list.
typedef NamedDecl *const * const_iterator
 Iterates through the template parameters in this list.

Public Member Functions

iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
unsigned size () const
ArrayRef< NamedDecl * > asArray ()
ArrayRef< const NamedDecl * > asArray () const
NamedDeclgetParam (unsigned Idx)
const NamedDeclgetParam (unsigned Idx) const
unsigned getMinRequiredArguments () const
 Returns the minimum number of arguments needed to form a template specialization.
unsigned getDepth () const
 Get the depth of this template parameter list in the set of template parameter lists.
bool containsUnexpandedParameterPack () const
 Determine whether this template parameter list contains an unexpanded parameter pack.
SourceLocation getTemplateLoc () const
SourceLocation getLAngleLoc () const
SourceLocation getRAngleLoc () const
SourceRange getSourceRange () const LLVM_READONLY

Static Public Member Functions

static TemplateParameterListCreate (const ASTContext &C, SourceLocation TemplateLoc, SourceLocation LAngleLoc, NamedDecl **Params, unsigned NumParams, SourceLocation RAngleLoc)

Protected Member Functions

 TemplateParameterList (SourceLocation TemplateLoc, SourceLocation LAngleLoc, NamedDecl **Params, unsigned NumParams, SourceLocation RAngleLoc)

Detailed Description

Stores a list of template parameters for a TemplateDecl and its derived classes.

Definition at line 46 of file DeclTemplate.h.


Member Typedef Documentation

Iterates through the template parameters in this list.

Definition at line 78 of file DeclTemplate.h.

Iterates through the template parameters in this list.

Definition at line 75 of file DeclTemplate.h.


Constructor & Destructor Documentation

TemplateParameterList::TemplateParameterList ( SourceLocation  TemplateLoc,
SourceLocation  LAngleLoc,
NamedDecl **  Params,
unsigned  NumParams,
SourceLocation  RAngleLoc 
) [protected]

Definition at line 30 of file DeclTemplate.cpp.

References begin(), clang::Decl::isTemplateParameterPack(), and P.

Referenced by Create().


Member Function Documentation

Definition at line 89 of file DeclTemplate.h.

References begin(), and end().

ArrayRef<const NamedDecl*> clang::TemplateParameterList::asArray ( ) const [inline]

Definition at line 92 of file DeclTemplate.h.

References begin(), and size().

Definition at line 81 of file DeclTemplate.h.

Determine whether this template parameter list contains an unexpanded parameter pack.

Definition at line 122 of file DeclTemplate.h.

Referenced by clang::TemplateTemplateParmDecl::isPackExpansion().

TemplateParameterList * TemplateParameterList::Create ( const ASTContext C,
SourceLocation  TemplateLoc,
SourceLocation  LAngleLoc,
NamedDecl **  Params,
unsigned  NumParams,
SourceLocation  RAngleLoc 
) [static]

Definition at line 85 of file DeclTemplate.h.

References begin().

Get the depth of this template parameter list in the set of template parameter lists.

The first template parameter list in a declaration will have depth 0, the second template parameter list will have depth 1, etc.

Definition at line 100 of file DeclTemplate.cpp.

References getParam(), and size().

Referenced by hasDeducibleTemplateParameters(), isAtLeastAsSpecializedAs(), isSameAsPrimaryTemplate(), and clang::Sema::MarkDeducedTemplateParameters().

Returns the minimum number of arguments needed to form a template specialization.

This may be fewer than the number of template parameters, if some of the parameters have default arguments or if there is a parameter pack.

Definition at line 69 of file DeclTemplate.cpp.

References begin(), end(), and P.

Referenced by clang::Sema::isStdInitializerList(), and LookupStdInitializerList().

Definition at line 101 of file DeclTemplate.h.

References begin(), and size().

Definition at line 87 of file DeclTemplate.h.

Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateTemplateParameter(), clang::comments::Sema::actOnTParamCommandParamNameArg(), clang::Sema::ActOnVariableDeclarator(), clang::ASTWriter::AddTemplateParameterList(), asArray(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckLiteralOperatorDeclaration(), CheckTemplatePartialSpecializationArgs(), clang::PredefinedExpr::ComputeName(), clang::TemplateTemplateParmDecl::Create(), clang::Sema::DeduceTemplateArguments(), diagnoseArityMismatch(), DiagnoseTemplateParameterListArityMismatch(), DiagnoseUnexpandedParameterPacks(), FinishTemplateArgumentDeduction(), clang::Sema::FinishTemplateArgumentDeduction(), getDepth(), clang::ClassTemplateDecl::getInjectedClassNameSpecialization(), clang::FunctionTemplateDecl::getInjectedTemplateArgs(), clang::Sema::getMoreSpecializedPartialSpecialization(), getParam(), clang::Sema::getTemplateArgumentBindingsText(), hasDeducibleTemplateParameters(), clang::ASTNodeImporter::ImportTemplateParameterList(), isAtLeastAsSpecializedAs(), isSameAsPrimaryTemplate(), isSameTemplateParameterList(), IsStructurallyEquivalent(), clang::Sema::LookupLiteralOperator(), clang::Sema::MarkDeducedTemplateParameters(), PackDeductionScope::PackDeductionScope(), clang::Sema::RebuildTemplateParamsInCurrentInstantiation(), ResolveOverloadForDeduction(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::TemplateDeclInstantiator::SubstTemplateParams(), and clang::Sema::TemplateParameterListsAreEqual().


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