clang API Documentation
A template argument list. More...
#include <DeclTemplate.h>
Public Types | |
enum | OnStackType { OnStack } |
Type used to indicate that the template argument list itself is a stack object. It does not own its template arguments. More... | |
Public Member Functions | |
TemplateArgumentList (OnStackType, const TemplateArgument *Args, unsigned NumArgs) | |
Construct a new, temporary template argument list on the stack. | |
TemplateArgumentList (const TemplateArgumentList *Other) | |
Produces a shallow copy of the given template argument list. | |
const TemplateArgument & | get (unsigned Idx) const |
Retrieve the template argument at a given index. | |
const TemplateArgument & | operator[] (unsigned Idx) const |
Retrieve the template argument at a given index. | |
ArrayRef< TemplateArgument > | asArray () const |
Produce this as an array ref. | |
unsigned | size () const |
Retrieve the number of template arguments in this template argument list. | |
const TemplateArgument * | data () const |
Retrieve a pointer to the template argument list. | |
Static Public Member Functions | |
static TemplateArgumentList * | CreateCopy (ASTContext &Context, const TemplateArgument *Args, unsigned NumArgs) |
Create a new template argument list that copies the given set of template arguments. |
A template argument list.
Definition at line 150 of file DeclTemplate.h.
Type used to indicate that the template argument list itself is a stack object. It does not own its template arguments.
Definition at line 171 of file DeclTemplate.h.
clang::TemplateArgumentList::TemplateArgumentList | ( | OnStackType | , |
const TemplateArgument * | Args, | ||
unsigned | NumArgs | ||
) | [inline, explicit] |
Construct a new, temporary template argument list on the stack.
The template argument list does not own the template arguments provided.
Definition at line 183 of file DeclTemplate.h.
clang::TemplateArgumentList::TemplateArgumentList | ( | const TemplateArgumentList * | Other | ) | [inline, explicit] |
Produces a shallow copy of the given template argument list.
This operation assumes that the input argument list outlives it. This takes the list as a pointer to avoid looking like a copy constructor, since this really really isn't safe to use that way.
Definition at line 193 of file DeclTemplate.h.
ArrayRef<TemplateArgument> clang::TemplateArgumentList::asArray | ( | ) | const [inline] |
Produce this as an array ref.
Definition at line 206 of file DeclTemplate.h.
References data(), and size().
Referenced by clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), getLVForTemplateArgumentList(), clang::CXXUuidofExpr::GetUuidAttrOfType(), clang::Sema::InstantiateVariableDefinition(), clang::FunctionTemplateSpecializationInfo::Profile(), clang::ClassTemplateSpecializationDecl::Profile(), and clang::VarTemplateSpecializationDecl::Profile().
TemplateArgumentList * TemplateArgumentList::CreateCopy | ( | ASTContext & | Context, |
const TemplateArgument * | Args, | ||
unsigned | NumArgs | ||
) | [static] |
Create a new template argument list that copies the given set of template arguments.
Definition at line 649 of file DeclTemplate.cpp.
References clang::ASTContext::Allocate().
Referenced by FinishTemplateArgumentDeduction(), clang::Sema::FinishTemplateArgumentDeduction(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::ASTDeclReader::UpdateDecl(), clang::ASTDeclReader::VisitClassTemplateSpecializationDeclImpl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTDeclReader::VisitFunctionDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), and clang::ASTDeclReader::VisitVarTemplateSpecializationDeclImpl().
const TemplateArgument* clang::TemplateArgumentList::data | ( | ) | const [inline] |
Retrieve a pointer to the template argument list.
Definition at line 215 of file DeclTemplate.h.
Referenced by clang::MultiLevelTemplateArgumentList::addOuterTemplateArguments(), asArray(), DeduceTemplateArguments(), get(), clang::Sema::getMoreSpecializedPartialSpecialization(), clang::ClassTemplateSpecializationDecl::getNameForDiagnostic(), clang::FunctionDecl::getNameForDiagnostic(), clang::VarTemplateSpecializationDecl::getNameForDiagnostic(), clang::Sema::getTemplateArgumentBindingsText(), clang::Sema::isStdInitializerList(), clang::Sema::MarkUsedTemplateParameters(), clang::NamedDecl::printQualifiedName(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), and clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl().
const TemplateArgument& clang::TemplateArgumentList::get | ( | unsigned | Idx | ) | const [inline] |
Retrieve the template argument at a given index.
Definition at line 197 of file DeclTemplate.h.
References data().
Referenced by clang::ASTWriter::AddTemplateArgumentList(), clang::PredefinedExpr::ComputeName(), IsStructurallyEquivalent(), and clang::Sema::SubstituteExplicitTemplateArguments().
const TemplateArgument& clang::TemplateArgumentList::operator[] | ( | unsigned | Idx | ) | const [inline] |
Retrieve the template argument at a given index.
Definition at line 203 of file DeclTemplate.h.
unsigned clang::TemplateArgumentList::size | ( | ) | const [inline] |
Retrieve the number of template arguments in this template argument list.
Definition at line 212 of file DeclTemplate.h.
Referenced by addAssociatedClassesAndNamespaces(), clang::MultiLevelTemplateArgumentList::addOuterTemplateArguments(), clang::ASTWriter::AddTemplateArgumentList(), asArray(), clang::PredefinedExpr::ComputeName(), DeduceTemplateArguments(), clang::Sema::getMoreSpecializedPartialSpecialization(), clang::ClassTemplateSpecializationDecl::getNameForDiagnostic(), clang::FunctionDecl::getNameForDiagnostic(), clang::VarTemplateSpecializationDecl::getNameForDiagnostic(), clang::Sema::getTemplateArgumentBindingsText(), isCharSpecialization(), isStreamCharSpecialization(), IsStructurallyEquivalent(), clang::Sema::MarkUsedTemplateParameters(), clang::NamedDecl::printQualifiedName(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), and clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl().