clang API Documentation
Represents a dependent template name that cannot be resolved prior to template instantiation. More...
#include <TemplateName.h>
Public Member Functions | |
NestedNameSpecifier * | getQualifier () const |
Return the nested name specifier that qualifies this name. | |
bool | isIdentifier () const |
Determine whether this template name refers to an identifier. | |
const IdentifierInfo * | getIdentifier () const |
Returns the identifier to which this template name refers. | |
bool | isOverloadedOperator () const |
Determine whether this template name refers to an overloaded operator. | |
OverloadedOperatorKind | getOperator () const |
Return the overloaded operator to which this template name refers. | |
void | Profile (llvm::FoldingSetNodeID &ID) |
Static Public Member Functions | |
static void | Profile (llvm::FoldingSetNodeID &ID, NestedNameSpecifier *NNS, const IdentifierInfo *Identifier) |
static void | Profile (llvm::FoldingSetNodeID &ID, NestedNameSpecifier *NNS, OverloadedOperatorKind Operator) |
Friends | |
class | ASTContext |
Represents a dependent template name that cannot be resolved prior to template instantiation.
This kind of template name refers to a dependent template name, including its nested name specifier (if any). For example, DependentTemplateName can refer to "MetaFun::template apply", where "MetaFun::" is the nested name specifier and "apply" is the template name referenced. The "template" keyword is implied.
Definition at line 440 of file TemplateName.h.
const IdentifierInfo* clang::DependentTemplateName::getIdentifier | ( | ) | const [inline] |
Returns the identifier to which this template name refers.
Definition at line 502 of file TemplateName.h.
References Identifier, and isIdentifier().
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::ASTWriter::AddTemplateName(), clang::Sema::CheckTemplateIdType(), clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), and Profile().
OverloadedOperatorKind clang::DependentTemplateName::getOperator | ( | ) | const [inline] |
Return the overloaded operator to which this template name refers.
Definition at line 512 of file TemplateName.h.
References isOverloadedOperator(), and Operator.
Referenced by clang::ASTWriter::AddTemplateName(), clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), and Profile().
NestedNameSpecifier* clang::DependentTemplateName::getQualifier | ( | ) | const [inline] |
Return the nested name specifier that qualifies this name.
Definition at line 496 of file TemplateName.h.
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::ASTWriter::AddTemplateName(), clang::Sema::CheckTemplateIdType(), clang::ASTImporter::Import(), and Profile().
bool clang::DependentTemplateName::isIdentifier | ( | ) | const [inline] |
Determine whether this template name refers to an identifier.
Definition at line 499 of file TemplateName.h.
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::ASTWriter::AddTemplateName(), clang::Sema::CheckTemplateIdType(), getIdentifier(), clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), and Profile().
bool clang::DependentTemplateName::isOverloadedOperator | ( | ) | const [inline] |
Determine whether this template name refers to an overloaded operator.
Definition at line 509 of file TemplateName.h.
Referenced by getOperator().
void clang::DependentTemplateName::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | [inline] |
Definition at line 518 of file TemplateName.h.
References getIdentifier(), getOperator(), getQualifier(), and isIdentifier().
Referenced by clang::ASTContext::getDependentTemplateName().
static void clang::DependentTemplateName::Profile | ( | llvm::FoldingSetNodeID & | ID, |
NestedNameSpecifier * | NNS, | ||
const IdentifierInfo * | Identifier | ||
) | [inline, static] |
Definition at line 525 of file TemplateName.h.
static void clang::DependentTemplateName::Profile | ( | llvm::FoldingSetNodeID & | ID, |
NestedNameSpecifier * | NNS, | ||
OverloadedOperatorKind | Operator | ||
) | [inline, static] |
Definition at line 532 of file TemplateName.h.
friend class ASTContext [friend] |
Definition at line 470 of file TemplateName.h.
The identifier template name.
Only valid when the bit on Qualifier
is clear.
Definition at line 454 of file TemplateName.h.
Referenced by getIdentifier().
The overloaded operator name.
Only valid when the bit on Qualifier
is set.
Definition at line 459 of file TemplateName.h.
Referenced by getOperator().