clang 22.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::DependentTemplateStorage Class Reference

Represents a dependent template name that cannot be resolved prior to template instantiation. More...

#include "clang/AST/TemplateName.h"

Inheritance diagram for clang::DependentTemplateStorage:
[legend]

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)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ DependentTemplateStorage()

DependentTemplateStorage::DependentTemplateStorage ( NestedNameSpecifier  Qualifier,
IdentifierOrOverloadedOperator  Name,
bool  HasTemplateKeyword 
)

Definition at line 320 of file TemplateName.cpp.

Member Function Documentation

◆ getDependence()

TemplateNameDependence DependentTemplateStorage::getDependence ( ) const

Definition at line 328 of file TemplateName.cpp.

References getDependence(), getQualifier(), and clang::toTemplateNameDependence().

Referenced by getDependence().

◆ getName()

IdentifierOrOverloadedOperator clang::DependentTemplateStorage::getName ( ) const
inline

◆ getQualifier()

NestedNameSpecifier clang::DependentTemplateStorage::getQualifier ( ) const
inline

◆ hasTemplateKeyword()

bool clang::DependentTemplateStorage::hasTemplateKeyword ( ) const
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().

◆ print()

void DependentTemplateStorage::print ( raw_ostream &  OS,
const PrintingPolicy Policy 
) const

◆ Profile() [1/2]

void clang::DependentTemplateStorage::Profile ( llvm::FoldingSetNodeID &  ID) const
inline

Definition at line 616 of file TemplateName.h.

References ID.

◆ Profile() [2/2]

static void clang::DependentTemplateStorage::Profile ( llvm::FoldingSetNodeID &  ID,
NestedNameSpecifier  NNS,
IdentifierOrOverloadedOperator  Name,
bool  HasTemplateKeyword 
)
inlinestatic

Definition at line 620 of file TemplateName.h.

References ID, and clang::NestedNameSpecifier::Profile().


The documentation for this class was generated from the following files: