clang 20.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::DependentTemplateName 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::DependentTemplateName:
Inheritance graph
[legend]

Public Member Functions

NestedNameSpecifiergetQualifier () const
 Return the nested name specifier that qualifies this name.
 
bool isIdentifier () const
 Determine whether this template name refers to an identifier.
 
const IdentifierInfogetIdentifier () 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
 

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 548 of file TemplateName.h.

Member Function Documentation

◆ getIdentifier()

const IdentifierInfo * clang::DependentTemplateName::getIdentifier ( ) const
inline

Returns the identifier to which this template name refers.

Definition at line 610 of file TemplateName.h.

References Identifier.

Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::CheckTemplateIdType(), clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), and IsStructurallyEquivalent().

◆ getOperator()

OverloadedOperatorKind clang::DependentTemplateName::getOperator ( ) const
inline

Return the overloaded operator to which this template name refers.

Definition at line 620 of file TemplateName.h.

Referenced by clang::ASTContext::getNameForTemplate(), clang::ASTImporter::Import(), and IsStructurallyEquivalent().

◆ getQualifier()

NestedNameSpecifier * clang::DependentTemplateName::getQualifier ( ) const
inline

◆ isIdentifier()

bool clang::DependentTemplateName::isIdentifier ( ) const
inline

◆ isOverloadedOperator()

bool clang::DependentTemplateName::isOverloadedOperator ( ) const
inline

Determine whether this template name refers to an overloaded operator.

Definition at line 617 of file TemplateName.h.

Referenced by IsStructurallyEquivalent().

◆ Profile() [1/3]

void clang::DependentTemplateName::Profile ( llvm::FoldingSetNodeID &  ID)
inline

Definition at line 626 of file TemplateName.h.

References getIdentifier(), and ID.

Referenced by clang::ASTContext::getDependentTemplateName().

◆ Profile() [2/3]

static void clang::DependentTemplateName::Profile ( llvm::FoldingSetNodeID &  ID,
NestedNameSpecifier NNS,
const IdentifierInfo Identifier 
)
inlinestatic

Definition at line 633 of file TemplateName.h.

References ID, and Identifier.

◆ Profile() [3/3]

static void clang::DependentTemplateName::Profile ( llvm::FoldingSetNodeID &  ID,
NestedNameSpecifier NNS,
OverloadedOperatorKind  Operator 
)
inlinestatic

Definition at line 640 of file TemplateName.h.

References ID.

Friends And Related Function Documentation

◆ ASTContext

friend class ASTContext
friend

Definition at line 549 of file TemplateName.h.

Member Data Documentation

◆ Identifier

const IdentifierInfo* clang::DependentTemplateName::Identifier

The identifier template name.

Only valid when the bit on Qualifier is clear.

Definition at line 564 of file TemplateName.h.

◆ Operator

OverloadedOperatorKind clang::DependentTemplateName::Operator

The overloaded operator name.

Only valid when the bit on Qualifier is set.

Definition at line 569 of file TemplateName.h.


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