DeclarationNameExtra is used as a base of various uncommon special names.
More...
#include "clang/Basic/IdentifierTable.h"
DeclarationNameExtra is used as a base of various uncommon special names.
This class is needed since DeclarationName has not enough space to store the kind of every possible names. Therefore the kind of common names is stored directly in DeclarationName, and the kind of uncommon names is stored in DeclarationNameExtra. It is aligned to 8 bytes because DeclarationName needs the lower 3 bits to store the kind of common names. DeclarationNameExtra is tightly coupled to DeclarationName and any change here is very likely to require changes in DeclarationName(Table).
Definition at line 853 of file IdentifierTable.h.
◆ ExtraKind
The kind of "extra" information stored in the DeclarationName.
See ExtraKindOrNumArgs
for an explanation of how these enumerator values are used. Note that DeclarationName depends on the numerical values of the enumerators in this enum. See DeclarationName::StoredNameKind for more info.
Enumerator |
---|
CXXDeductionGuideName | |
CXXLiteralOperatorName | |
CXXUsingDirective | |
ObjCMultiArgSelector | |
Definition at line 863 of file IdentifierTable.h.
◆ DeclarationNameExtra() [1/2]
clang::detail::DeclarationNameExtra::DeclarationNameExtra |
( |
ExtraKind |
Kind | ) |
|
|
inlineprotected |
◆ DeclarationNameExtra() [2/2]
clang::detail::DeclarationNameExtra::DeclarationNameExtra |
( |
unsigned |
NumArgs | ) |
|
|
inlineprotected |
◆ getKind()
ExtraKind clang::detail::DeclarationNameExtra::getKind |
( |
| ) |
const |
|
inlineprotected |
◆ getNumArgs()
unsigned clang::detail::DeclarationNameExtra::getNumArgs |
( |
| ) |
const |
|
inlineprotected |
◆ clang::DeclarationName
◆ clang::DeclarationNameTable
◆ ExtraKindOrNumArgs
unsigned clang::detail::DeclarationNameExtra::ExtraKindOrNumArgs |
|
protected |
ExtraKindOrNumArgs has one of the following meaning:
Definition at line 880 of file IdentifierTable.h.
The documentation for this class was generated from the following file: