clang API Documentation
Stores a list of template parameters for a TemplateDecl and its derived classes. More...
#include <DeclTemplate.h>
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 |
NamedDecl * | getParam (unsigned Idx) |
const NamedDecl * | getParam (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 TemplateParameterList * | Create (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) |
Stores a list of template parameters for a TemplateDecl and its derived classes.
Definition at line 46 of file DeclTemplate.h.
typedef NamedDecl* const* clang::TemplateParameterList::const_iterator |
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.
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().
ArrayRef<NamedDecl*> clang::TemplateParameterList::asArray | ( | ) | [inline] |
Definition at line 89 of file DeclTemplate.h.
ArrayRef<const NamedDecl*> clang::TemplateParameterList::asArray | ( | ) | const [inline] |
Definition at line 92 of file DeclTemplate.h.
iterator clang::TemplateParameterList::begin | ( | ) | [inline] |
Definition at line 80 of file DeclTemplate.h.
Referenced by AddTemplateParameterChunks(), clang::ASTWriter::AddTemplateParameterList(), AdoptTemplateParameterList(), asArray(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::CheckTemplateParameterList(), collectUnexpandedParameterPacks(), end(), GenerateInjectedTemplateArgs(), getMinRequiredArguments(), getParam(), clang::ASTNodeImporter::ImportTemplateParameterList(), clang::TemplateDeclInstantiator::SubstTemplateParams(), TemplateParameterList(), and clang::Sema::TemplateParameterListsAreEqual().
const_iterator clang::TemplateParameterList::begin | ( | ) | const [inline] |
Definition at line 81 of file DeclTemplate.h.
bool clang::TemplateParameterList::containsUnexpandedParameterPack | ( | ) | const [inline] |
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 57 of file DeclTemplate.cpp.
References clang::ASTContext::Allocate(), and TemplateParameterList().
Referenced by clang::Sema::ActOnTemplateParameterList(), getGenericLambdaTemplateParameterList(), clang::ASTNodeImporter::ImportTemplateParameterList(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::ASTReader::ReadTemplateParameterList(), and clang::TemplateDeclInstantiator::SubstTemplateParams().
iterator clang::TemplateParameterList::end | ( | ) | [inline] |
Definition at line 84 of file DeclTemplate.h.
References begin().
Referenced by AddTemplateParameterChunks(), clang::ASTWriter::AddTemplateParameterList(), AdoptTemplateParameterList(), asArray(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::CheckTemplateParameterList(), collectUnexpandedParameterPacks(), GenerateInjectedTemplateArgs(), getMinRequiredArguments(), clang::ASTNodeImporter::ImportTemplateParameterList(), clang::TemplateDeclInstantiator::SubstTemplateParams(), and clang::Sema::TemplateParameterListsAreEqual().
const_iterator clang::TemplateParameterList::end | ( | ) | const [inline] |
Definition at line 85 of file DeclTemplate.h.
References begin().
unsigned TemplateParameterList::getDepth | ( | ) | const |
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().
SourceLocation clang::TemplateParameterList::getLAngleLoc | ( | ) | const [inline] |
Definition at line 127 of file DeclTemplate.h.
Referenced by clang::Sema::ActOnTemplateTemplateParameter(), clang::ASTWriter::AddTemplateParameterList(), clang::ASTNodeImporter::ImportTemplateParameterList(), and clang::TemplateDeclInstantiator::SubstTemplateParams().
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().
NamedDecl* clang::TemplateParameterList::getParam | ( | unsigned | Idx | ) | [inline] |
Definition at line 96 of file DeclTemplate.h.
References begin(), and size().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::comments::Sema::actOnTParamCommandParamNameArg(), clang::Sema::CheckLiteralOperatorDeclaration(), CheckTemplatePartialSpecializationArgs(), clang::PredefinedExpr::ComputeName(), DeduceTemplateArgumentsByTypeMatch(), DiagnoseUnexpandedParameterPacks(), FinishTemplateArgumentDeduction(), clang::Sema::FinishTemplateArgumentDeduction(), getDepth(), clang::comments::TParamCommandComment::getParamName(), clang::Sema::getTemplateArgumentBindingsText(), isSameAsPrimaryTemplate(), isSameTemplateParameterList(), clang::Sema::isStdInitializerList(), IsStructurallyEquivalent(), LookupStdInitializerList(), clang::Sema::RebuildTemplateParamsInCurrentInstantiation(), and clang::Sema::SubstituteExplicitTemplateArguments().
const NamedDecl* clang::TemplateParameterList::getParam | ( | unsigned | Idx | ) | const [inline] |
Definition at line 101 of file DeclTemplate.h.
SourceLocation clang::TemplateParameterList::getRAngleLoc | ( | ) | const [inline] |
Definition at line 128 of file DeclTemplate.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnTemplateTemplateParameter(), clang::Sema::ActOnVariableDeclarator(), clang::ASTWriter::AddTemplateParameterList(), DiagnoseTemplateParameterListArityMismatch(), clang::ASTNodeImporter::ImportTemplateParameterList(), and clang::TemplateDeclInstantiator::SubstTemplateParams().
SourceRange clang::TemplateParameterList::getSourceRange | ( | ) | const [inline] |
Definition at line 130 of file DeclTemplate.h.
Referenced by clang::Sema::CheckTemplateArgumentList(), clang::Sema::CheckTemplateDeclScope(), and diagnoseArityMismatch().
SourceLocation clang::TemplateParameterList::getTemplateLoc | ( | ) | const [inline] |
Definition at line 126 of file DeclTemplate.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnVariableDeclarator(), clang::ASTWriter::AddTemplateParameterList(), clang::Sema::CheckTemplateDeclScope(), DiagnoseTemplateParameterListArityMismatch(), clang::FriendDecl::getSourceRange(), clang::TemplateDecl::getSourceRange(), clang::ASTNodeImporter::ImportTemplateParameterList(), IsStructurallyEquivalent(), and clang::TemplateDeclInstantiator::SubstTemplateParams().
unsigned clang::TemplateParameterList::size | ( | ) | const [inline] |
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().