clang 17.0.0git
|
Represents a dependent template name that cannot be resolved prior to template instantiation. More...
#include "clang/AST/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 490 of file TemplateName.h.
|
inline |
Returns the identifier to which this template name refers.
Definition at line 552 of file TemplateName.h.
References Identifier, and isIdentifier().
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::CheckTemplateIdType(), clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
|
inline |
Return the overloaded operator to which this template name refers.
Definition at line 562 of file TemplateName.h.
References isOverloadedOperator(), and Operator.
Referenced by clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
|
inline |
Return the nested name specifier that qualifies this name.
Definition at line 546 of file TemplateName.h.
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::CheckTemplateIdType(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
|
inline |
Determine whether this template name refers to an identifier.
Definition at line 549 of file TemplateName.h.
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::CheckTemplateIdType(), getIdentifier(), clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and Profile().
|
inline |
Determine whether this template name refers to an overloaded operator.
Definition at line 559 of file TemplateName.h.
Referenced by getOperator(), and IsStructurallyEquivalent().
|
inline |
Definition at line 568 of file TemplateName.h.
References getIdentifier(), getOperator(), getQualifier(), isIdentifier(), and Profile().
Referenced by clang::ASTContext::getDependentTemplateName(), and Profile().
|
inlinestatic |
Definition at line 575 of file TemplateName.h.
References Identifier.
|
inlinestatic |
Definition at line 582 of file TemplateName.h.
References Operator.
|
friend |
Definition at line 491 of file TemplateName.h.
const IdentifierInfo* clang::DependentTemplateName::Identifier |
The identifier template name.
Only valid when the bit on Qualifier
is clear.
Definition at line 506 of file TemplateName.h.
Referenced by getIdentifier(), and Profile().
OverloadedOperatorKind clang::DependentTemplateName::Operator |
The overloaded operator name.
Only valid when the bit on Qualifier
is set.
Definition at line 511 of file TemplateName.h.
Referenced by getOperator(), and Profile().