clang 22.0.0git
clang::QualifiedTemplateName Class Reference

Represents a template name as written in source code. More...

#include "clang/AST/TemplateName.h"

Inheritance diagram for clang::QualifiedTemplateName:
[legend]

Public Member Functions

NestedNameSpecifier getQualifier () const
 Return the nested name specifier that qualifies this name.
bool hasTemplateKeyword () const
 Whether the template name was prefixed by the "template" keyword.
TemplateName getUnderlyingTemplate () const
 Return the underlying template name.
void Profile (llvm::FoldingSetNodeID &ID)

Static Public Member Functions

static void Profile (llvm::FoldingSetNodeID &ID, NestedNameSpecifier NNS, bool TemplateKeyword, TemplateName TN)

Friends

class ASTContext

Detailed Description

Represents a template name as written in source code.

This kind of template name may refer to a template name that was preceded by a nested name specifier, e.g., std::vector. Here, the nested name specifier is "std::" and the template name is the declaration for "vector". It may also have been written with the 'template' keyword. The QualifiedTemplateName class is only used to provide "sugar" for template names, so that they can be differentiated from canonical template names. and has no semantic meaning. In this manner, it is to TemplateName what ElaboratedType is to Type, providing extra syntactic sugar for downstream clients.

Definition at line 504 of file TemplateName.h.

Member Function Documentation

◆ getQualifier()

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

◆ getUnderlyingTemplate()

TemplateName clang::QualifiedTemplateName::getUnderlyingTemplate ( ) const
inline

◆ hasTemplateKeyword()

bool clang::QualifiedTemplateName::hasTemplateKeyword ( ) const
inline

Whether the template name was prefixed by the "template" keyword.

Definition at line 536 of file TemplateName.h.

Referenced by clang::ODRHash::AddTemplateName(), clang::TextNodeDumper::dumpBareTemplateName(), clang::TypeName::getFullyQualifiedTemplateName(), clang::ASTImporter::Import(), and Profile().

◆ Profile() [1/2]

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

◆ Profile() [2/2]

void clang::QualifiedTemplateName::Profile ( llvm::FoldingSetNodeID & ID,
NestedNameSpecifier NNS,
bool TemplateKeyword,
TemplateName TN )
inlinestatic

◆ ASTContext

friend class ASTContext
friend

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