clang 22.0.0git
clang::DeclarationNameTable Class Reference

DeclarationNameTable is used to store and retrieve DeclarationName instances for the various kinds of declaration names, e.g., normal identifiers, C++ constructor names, etc. More...

#include "clang/AST/DeclarationName.h"

Public Member Functions

 DeclarationNameTable (const ASTContext &C)
 DeclarationNameTable (const DeclarationNameTable &)=delete
DeclarationNameTableoperator= (const DeclarationNameTable &)=delete
 DeclarationNameTable (DeclarationNameTable &&)=delete
DeclarationNameTableoperator= (DeclarationNameTable &&)=delete
 ~DeclarationNameTable ()=default
DeclarationName getIdentifier (const IdentifierInfo *ID)
 Create a declaration name that is a simple identifier.
DeclarationName getCXXConstructorName (CanQualType Ty)
 Returns the name of a C++ constructor for the given Type.
DeclarationName getCXXDestructorName (CanQualType Ty)
 Returns the name of a C++ destructor for the given Type.
DeclarationName getCXXDeductionGuideName (TemplateDecl *TD)
 Returns the name of a C++ deduction guide for the given template.
DeclarationName getCXXConversionFunctionName (CanQualType Ty)
 Returns the name of a C++ conversion function for the given Type.
DeclarationName getCXXSpecialName (DeclarationName::NameKind Kind, CanQualType Ty)
 Returns a declaration name for special kind of C++ name, e.g., for a constructor, destructor, or conversion function.
DeclarationName getCXXOperatorName (OverloadedOperatorKind Op)
 Get the name of the overloadable C++ operator corresponding to Op.
DeclarationName getCXXLiteralOperatorName (const IdentifierInfo *II)
 Get the name of the literal operator function with II as the identifier.

Detailed Description

DeclarationNameTable is used to store and retrieve DeclarationName instances for the various kinds of declaration names, e.g., normal identifiers, C++ constructor names, etc.

This class contains uniqued versions of each of the C++ special names, which can be retrieved using its member functions (e.g., getCXXConstructorName).

Definition at line 605 of file DeclarationName.h.

Constructor & Destructor Documentation

◆ DeclarationNameTable() [1/3]

DeclarationNameTable::DeclarationNameTable ( const ASTContext & C)

◆ DeclarationNameTable() [2/3]

clang::DeclarationNameTable::DeclarationNameTable ( const DeclarationNameTable & )
delete

◆ DeclarationNameTable() [3/3]

clang::DeclarationNameTable::DeclarationNameTable ( DeclarationNameTable && )
delete

◆ ~DeclarationNameTable()

clang::DeclarationNameTable::~DeclarationNameTable ( )
default

Member Function Documentation

◆ getCXXConstructorName()

DeclarationName DeclarationNameTable::getCXXConstructorName ( CanQualType Ty)

◆ getCXXConversionFunctionName()

DeclarationName DeclarationNameTable::getCXXConversionFunctionName ( CanQualType Ty)

Returns the name of a C++ conversion function for the given Type.

Definition at line 336 of file DeclarationName.cpp.

References clang::CanQual< T >::getAsOpaquePtr().

Referenced by addBlockPointerConversion(), addFunctionPointerConversion(), and getCXXSpecialName().

◆ getCXXDeductionGuideName()

DeclarationName DeclarationNameTable::getCXXDeductionGuideName ( TemplateDecl * TD)

Returns the name of a C++ deduction guide for the given template.

Definition at line 288 of file DeclarationName.cpp.

References clang::cast(), and clang::Template.

◆ getCXXDestructorName()

DeclarationName DeclarationNameTable::getCXXDestructorName ( CanQualType Ty)

Returns the name of a C++ destructor for the given Type.

Definition at line 319 of file DeclarationName.cpp.

References clang::CanQual< T >::getAsOpaquePtr(), and clang::CanQual< T >::getUnqualifiedType().

Referenced by getCXXSpecialName().

◆ getCXXLiteralOperatorName()

DeclarationName DeclarationNameTable::getCXXLiteralOperatorName ( const IdentifierInfo * II)

Get the name of the literal operator function with II as the identifier.

Definition at line 367 of file DeclarationName.cpp.

Referenced by BuildCookedLiteralOperatorCall().

◆ getCXXOperatorName()

◆ getCXXSpecialName()

DeclarationName DeclarationNameTable::getCXXSpecialName ( DeclarationName::NameKind Kind,
CanQualType Ty )

◆ getIdentifier()

DeclarationName clang::DeclarationNameTable::getIdentifier ( const IdentifierInfo * ID)
inline

Create a declaration name that is a simple identifier.

Definition at line 651 of file DeclarationName.h.

Referenced by hasMember(), isImplicitMapperNeeded(), and processImplicitMapsWithDefaultMappers().

◆ operator=() [1/2]

DeclarationNameTable & clang::DeclarationNameTable::operator= ( const DeclarationNameTable & )
delete

◆ operator=() [2/2]

DeclarationNameTable & clang::DeclarationNameTable::operator= ( DeclarationNameTable && )
delete

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