clang  6.0.0svn
Public Types | Public Attributes | List of all members
clang::DeclarationNameExtra Class Reference

DeclarationNameExtra - Common base of the MultiKeywordSelector, CXXSpecialName, and CXXOperatorIdName classes, all of which are private classes that describe different kinds of names. More...

#include "clang/Basic/IdentifierTable.h"

Inheritance diagram for clang::DeclarationNameExtra:
Inheritance graph
[legend]
Collaboration diagram for clang::DeclarationNameExtra:
Collaboration graph
[legend]

Public Types

enum  ExtraKind {
  CXXConstructor = 0, CXXDestructor, CXXConversionFunction, CXXDeductionGuide,
  CXXLiteralOperator, CXXUsingDirective, NUM_EXTRA_KINDS
}
 ExtraKind - The kind of "extra" information stored in the DeclarationName. More...
 

Public Attributes

unsigned ExtraKindOrNumArgs
 ExtraKindOrNumArgs - Either the kind of C++ special name or operator-id (if the value is one of the CXX* enumerators of ExtraKind), in which case the DeclarationNameExtra is also a CXXSpecialName, (for CXXConstructor, CXXDestructor, or CXXConversionFunction) CXXOperatorIdName, or CXXLiteralOperatorName, it may be also name common to C++ using-directives (CXXUsingDirective), otherwise it is NUM_EXTRA_KINDS+NumArgs, where NumArgs is the number of arguments in the Objective-C selector, in which case the DeclarationNameExtra is also a MultiKeywordSelector. More...
 

Detailed Description

DeclarationNameExtra - Common base of the MultiKeywordSelector, CXXSpecialName, and CXXOperatorIdName classes, all of which are private classes that describe different kinds of names.

Definition at line 822 of file IdentifierTable.h.

Member Enumeration Documentation

◆ ExtraKind

ExtraKind - The kind of "extra" information stored in the DeclarationName.

See ExtraKindOrNumArgs for an explanation of how these enumerator values are used.

Enumerator
CXXConstructor 
CXXDestructor 
CXXConversionFunction 
CXXDeductionGuide 
CXXLiteralOperator 
CXXUsingDirective 
NUM_EXTRA_KINDS 

Definition at line 827 of file IdentifierTable.h.

Member Data Documentation

◆ ExtraKindOrNumArgs

unsigned clang::DeclarationNameExtra::ExtraKindOrNumArgs

ExtraKindOrNumArgs - Either the kind of C++ special name or operator-id (if the value is one of the CXX* enumerators of ExtraKind), in which case the DeclarationNameExtra is also a CXXSpecialName, (for CXXConstructor, CXXDestructor, or CXXConversionFunction) CXXOperatorIdName, or CXXLiteralOperatorName, it may be also name common to C++ using-directives (CXXUsingDirective), otherwise it is NUM_EXTRA_KINDS+NumArgs, where NumArgs is the number of arguments in the Objective-C selector, in which case the DeclarationNameExtra is also a MultiKeywordSelector.

Definition at line 849 of file IdentifierTable.h.

Referenced by clang::DeclarationNameTable::DeclarationNameTable(), clang::DeclarationName::getNameKind(), and clang::CXXSpecialName::Profile().


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