clang 22.0.0git
|
Represents a dependent template name that cannot be resolved prior to template instantiation. More...
#include "clang/AST/TemplateName.h"
Public Member Functions | |
DependentTemplateStorage (NestedNameSpecifier Qualifier, IdentifierOrOverloadedOperator Name, bool HasTemplateKeyword) | |
NestedNameSpecifier | getQualifier () const |
Return the nested name specifier that qualifies this name. | |
IdentifierOrOverloadedOperator | getName () const |
bool | hasTemplateKeyword () const |
Was this template name was preceeded by the template keyword? | |
TemplateNameDependence | getDependence () const |
void | Profile (llvm::FoldingSetNodeID &ID) const |
void | print (raw_ostream &OS, const PrintingPolicy &Policy) const |
Static Public Member Functions | |
static void | Profile (llvm::FoldingSetNodeID &ID, NestedNameSpecifier NNS, IdentifierOrOverloadedOperator Name, bool HasTemplateKeyword) |
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 590 of file TemplateName.h.
DependentTemplateStorage::DependentTemplateStorage | ( | NestedNameSpecifier | Qualifier, |
IdentifierOrOverloadedOperator | Name, | ||
bool | HasTemplateKeyword | ||
) |
Definition at line 320 of file TemplateName.cpp.
TemplateNameDependence DependentTemplateStorage::getDependence | ( | ) | const |
Definition at line 328 of file TemplateName.cpp.
References getDependence(), getQualifier(), and clang::toTemplateNameDependence().
Referenced by getDependence().
|
inline |
Definition at line 609 of file TemplateName.h.
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::ASTContext::getCanonicalTemplateName(), getCommonNonSugarTypeNode(), clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), and print().
|
inline |
Return the nested name specifier that qualifies this name.
Definition at line 607 of file TemplateName.h.
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::TextNodeDumper::dumpBareTemplateName(), clang::ASTContext::getCanonicalTemplateName(), getCommonNonSugarTypeNode(), getDependence(), clang::ASTImporter::Import(), IsStructurallyEquivalent(), MarkUsedTemplateParameters(), and print().
|
inline |
Was this template name was preceeded by the template keyword?
Definition at line 612 of file TemplateName.h.
Referenced by clang::ASTContext::getCanonicalTemplateName(), getCommonNonSugarTypeNode(), clang::ASTImporter::Import(), and print().
void DependentTemplateStorage::print | ( | raw_ostream & | OS, |
const PrintingPolicy & | Policy | ||
) | const |
Definition at line 333 of file TemplateName.cpp.
References getName(), clang::getOperatorSpelling(), getQualifier(), hasTemplateKeyword(), and clang::NestedNameSpecifier::print().
|
inline |
Definition at line 616 of file TemplateName.h.
References ID.
|
inlinestatic |
Definition at line 620 of file TemplateName.h.
References ID, and clang::NestedNameSpecifier::Profile().