clang API Documentation
Represents an explicit template argument list in C++, e.g., the "<int>" in "sort<int>". This is safe to be used inside an AST node, in contrast with TemplateArgumentListInfo. More...
#include <TemplateBase.h>


Public Member Functions | |
| TemplateArgumentLoc * | getTemplateArgs () |
| Retrieve the template arguments. | |
| const TemplateArgumentLoc * | getTemplateArgs () const |
| Retrieve the template arguments. | |
| const TemplateArgumentLoc & | operator[] (unsigned I) const |
| void | initializeFrom (const TemplateArgumentListInfo &List) |
| void | initializeFrom (const TemplateArgumentListInfo &List, bool &Dependent, bool &InstantiationDependent, bool &ContainsUnexpandedParameterPack) |
| void | copyInto (TemplateArgumentListInfo &List) const |
Static Public Member Functions | |
| static const ASTTemplateArgumentListInfo * | Create (ASTContext &C, const TemplateArgumentListInfo &List) |
| static std::size_t | sizeFor (unsigned NumTemplateArgs) |
Public Attributes | |
| SourceLocation | LAngleLoc |
| The source location of the left angle bracket ('<');. | |
| SourceLocation | RAngleLoc |
| The source location of the right angle bracket ('>');. | |
| unsigned | NumTemplateArgs |
| The number of template arguments in TemplateArgs. The actual template arguments (if any) are stored after the ExplicitTemplateArgumentList structure. | |
Represents an explicit template argument list in C++, e.g., the "<int>" in "sort<int>". This is safe to be used inside an AST node, in contrast with TemplateArgumentListInfo.
Definition at line 557 of file TemplateBase.h.
| void ASTTemplateArgumentListInfo::copyInto | ( | TemplateArgumentListInfo & | List | ) | const |
Definition at line 581 of file TemplateBase.cpp.
References clang::TemplateArgumentListInfo::addArgument(), getTemplateArgs(), LAngleLoc, NumTemplateArgs, RAngleLoc, clang::TemplateArgumentListInfo::setLAngleLoc(), and clang::TemplateArgumentListInfo::setRAngleLoc().
Referenced by clang::DeclRefExpr::copyTemplateArgumentsInto(), clang::MemberExpr::copyTemplateArgumentsInto(), clang::OverloadExpr::copyTemplateArgumentsInto(), clang::DependentScopeDeclRefExpr::copyTemplateArgumentsInto(), clang::CXXDependentScopeMemberExpr::copyTemplateArgumentsInto(), ResolveOverloadForDeduction(), and clang::Sema::ResolveSingleFunctionTemplateSpecialization().
| const ASTTemplateArgumentListInfo * ASTTemplateArgumentListInfo::Create | ( | ASTContext & | C, |
| const TemplateArgumentListInfo & | List | ||
| ) | [static] |
Definition at line 538 of file TemplateBase.cpp.
References clang::ASTContext::Allocate(), initializeFrom(), clang::TemplateArgumentListInfo::size(), and sizeFor().
| TemplateArgumentLoc* clang::ASTTemplateArgumentListInfo::getTemplateArgs | ( | ) | [inline] |
Retrieve the template arguments.
Definition at line 570 of file TemplateBase.h.
Referenced by clang::ASTStmtWriter::AddTemplateKWAndArgsInfo(), copyInto(), clang::DeclRefExpr::getTemplateArgs(), clang::MemberExpr::getTemplateArgs(), clang::OverloadExpr::getTemplateArgs(), clang::DependentScopeDeclRefExpr::getTemplateArgs(), clang::CXXDependentScopeMemberExpr::getTemplateArgs(), clang::ASTTemplateKWAndArgsInfo::getTemplateKeywordLoc(), initializeFrom(), operator[](), and clang::ASTTemplateKWAndArgsInfo::setTemplateKeywordLoc().
| const TemplateArgumentLoc* clang::ASTTemplateArgumentListInfo::getTemplateArgs | ( | ) | const [inline] |
Retrieve the template arguments.
Definition at line 575 of file TemplateBase.h.
| void ASTTemplateArgumentListInfo::initializeFrom | ( | const TemplateArgumentListInfo & | List | ) |
Definition at line 548 of file TemplateBase.cpp.
References clang::TemplateArgumentListInfo::getLAngleLoc(), clang::TemplateArgumentListInfo::getRAngleLoc(), getTemplateArgs(), LAngleLoc, NumTemplateArgs, RAngleLoc, and clang::TemplateArgumentListInfo::size().
Referenced by Create(), clang::ASTTemplateKWAndArgsInfo::initializeFrom(), and clang::CXXDependentScopeMemberExpr::initializeTemplateArgumentsFrom().
| void ASTTemplateArgumentListInfo::initializeFrom | ( | const TemplateArgumentListInfo & | List, |
| bool & | Dependent, | ||
| bool & | InstantiationDependent, | ||
| bool & | ContainsUnexpandedParameterPack | ||
| ) |
Definition at line 559 of file TemplateBase.cpp.
References clang::TemplateArgumentListInfo::getLAngleLoc(), clang::TemplateArgumentListInfo::getRAngleLoc(), getTemplateArgs(), LAngleLoc, NumTemplateArgs, RAngleLoc, and clang::TemplateArgumentListInfo::size().
| const TemplateArgumentLoc& clang::ASTTemplateArgumentListInfo::operator[] | ( | unsigned | I | ) | const [inline] |
Definition at line 579 of file TemplateBase.h.
References getTemplateArgs().
| std::size_t ASTTemplateArgumentListInfo::sizeFor | ( | unsigned | NumTemplateArgs | ) | [static] |
Reimplemented in clang::ASTTemplateKWAndArgsInfo.
Definition at line 589 of file TemplateBase.cpp.
References NumTemplateArgs.
Referenced by Create(), and clang::ASTTemplateKWAndArgsInfo::sizeFor().
The source location of the left angle bracket ('<');.
Definition at line 559 of file TemplateBase.h.
Referenced by clang::ASTStmtWriter::AddTemplateKWAndArgsInfo(), copyInto(), clang::DeclRefExpr::getLAngleLoc(), clang::MemberExpr::getLAngleLoc(), clang::OverloadExpr::getLAngleLoc(), clang::DependentScopeDeclRefExpr::getLAngleLoc(), clang::CXXDependentScopeMemberExpr::getLAngleLoc(), initializeFrom(), clang::ASTTemplateKWAndArgsInfo::initializeFrom(), and clang::ASTDeclWriter::VisitFunctionDecl().
The number of template arguments in TemplateArgs. The actual template arguments (if any) are stored after the ExplicitTemplateArgumentList structure.
Definition at line 567 of file TemplateBase.h.
Referenced by clang::ASTStmtWriter::AddTemplateKWAndArgsInfo(), copyInto(), clang::DeclRefExpr::getNumTemplateArgs(), clang::MemberExpr::getNumTemplateArgs(), clang::OverloadExpr::getNumTemplateArgs(), clang::DependentScopeDeclRefExpr::getNumTemplateArgs(), clang::CXXDependentScopeMemberExpr::getNumTemplateArgs(), clang::ASTTemplateKWAndArgsInfo::getTemplateKeywordLoc(), initializeFrom(), clang::ASTTemplateKWAndArgsInfo::initializeFrom(), clang::ASTTemplateKWAndArgsInfo::setTemplateKeywordLoc(), sizeFor(), and clang::ASTDeclWriter::VisitFunctionDecl().
The source location of the right angle bracket ('>');.
Definition at line 562 of file TemplateBase.h.
Referenced by clang::ASTStmtWriter::AddTemplateKWAndArgsInfo(), copyInto(), clang::DeclRefExpr::getRAngleLoc(), clang::MemberExpr::getRAngleLoc(), clang::OverloadExpr::getRAngleLoc(), clang::DependentScopeDeclRefExpr::getRAngleLoc(), clang::CXXDependentScopeMemberExpr::getRAngleLoc(), initializeFrom(), clang::ASTTemplateKWAndArgsInfo::initializeFrom(), and clang::ASTDeclWriter::VisitFunctionDecl().