class ElaboratedType
Declaration
class ElaboratedType : public TypeWithKeyword,
public Node,
private TrailingObjects { /* full declaration omitted */ };
Description
Represents a type that was referred to using an elaborated type keyword, e.g., struct S, or via a qualified name, e.g., N::M::type, or both. This type is used to keep track of a type name as written in the source code, including tag keywords and any nested-name-specifiers. The type itself is always "sugar", used to express what was written in the source code but containing no additional semantic information.
Declared at: clang/include/clang/AST/Type.h:5538
Inherits from: TypeWithKeyword, FoldingSetBase::Node, TrailingObjects
Member Variables
- private clang::NestedNameSpecifier* NNS
- The nested name specifier containing the qualifier.
- private clang::QualType NamedType
- The type that this qualified name refers to.
Inherited from Type:
Method Overview
- private ElaboratedType(clang::ElaboratedTypeKeyword Keyword, clang::NestedNameSpecifier * NNS, clang::QualType NamedType, clang::QualType CanonType, clang::TagDecl * OwnedTagDecl)
- public void Profile(llvm::FoldingSetNodeID & ID)
- public static void Profile(llvm::FoldingSetNodeID & ID, clang::ElaboratedTypeKeyword Keyword, clang::NestedNameSpecifier * NNS, clang::QualType NamedType, clang::TagDecl * OwnedTagDecl)
- public static bool classof(const clang::Type * T)
- public clang::QualType desugar() const
- public clang::QualType getNamedType() const
- public clang::TagDecl * getOwnedTagDecl() const
- public clang::NestedNameSpecifier * getQualifier() const
- public bool isSugared() const
Inherited from FoldingSetBase::Node:
Inherited from TypeWithKeyword:
- public KeywordIsTagTypeKind
- public classof
- public getKeyword
- public getKeywordForTagTypeKind
- public getKeywordForTypeSpec
- public getKeywordName
- public getTagTypeKindForKeyword
- public getTagTypeKindForTypeSpec
- public getTagTypeKindName
Inherited from Type:
- public acceptsObjCTypeParams
- protected addDependence
- public canDecayToPointerType
- public canHaveNullability
- public castAs
- public castAsArrayTypeUnsafe
- public containsErrors
- public containsUnexpandedParameterPack
- public dump
- public dump
- public getArrayElementTypeNoTypeQual
- public getAs
- public getAsAdjusted
- public getAsArrayTypeUnsafe
- public getAsCXXRecordDecl
- public getAsComplexIntegerType
- public getAsObjCInterfacePointerType
- public getAsObjCInterfaceType
- public getAsObjCQualifiedClassType
- public getAsObjCQualifiedIdType
- public getAsObjCQualifiedInterfaceType
- public getAsPlaceholderType
- public getAsRecordDecl
- public getAsStructureType
- public getAsTagDecl
- public getAsUnionType
- public getBaseElementTypeUnsafe
- public getCanonicalTypeInternal
- public getCanonicalTypeUnqualified
- public getContainedAutoType
- public getContainedDeducedType
- public getDependence
- public getLinkage
- public getLinkageAndVisibility
- public getLocallyUnqualifiedSingleStepDesugaredType
- public getNullability
- public getObjCARCImplicitLifetime
- public getObjCSubstitutions
- public getPointeeCXXRecordDecl
- public getPointeeOrArrayElementType
- public getPointeeType
- public getScalarTypeKind
- public getSveEltType
- public getTypeClass
- public getTypeClassName
- public getUnqualifiedDesugaredType
- public getVisibility
- public hasAttr
- public hasAutoForTrailingReturnType
- public hasFloatingRepresentation
- public hasIntegerRepresentation
- public hasObjCPointerRepresentation
- public hasPointerRepresentation
- public hasSignedIntegerRepresentation
- public hasSizedVLAType
- public hasUnnamedOrLocalType
- public hasUnsignedIntegerRepresentation
- public isAggregateType
- public isAlignValT
- public isAnyCharacterType
- public isAnyComplexType
- public isAnyPointerType
- public isArithmeticType
- public isArrayType
- public isAtomicType
- public isBFloat16Type
- public isBitIntType
- public isBlockCompatibleObjCPointerType
- public isBlockPointerType
- public isBooleanType
- public isBuiltinType
- public isCARCBridgableType
- public isCUDADeviceBuiltinSurfaceType
- public isCUDADeviceBuiltinTextureType
- public isCanonicalUnqualified
- public isChar16Type
- public isChar32Type
- public isChar8Type
- public isCharType
- public isClassType
- public isClkEventT
- public isComplexIntegerType
- public isComplexType
- public isCompoundType
- public isConstantArrayType
- public isConstantMatrixType
- public isConstantSizeType
- public isDecltypeType
- public isDependentAddressSpaceType
- public isDependentSizedArrayType
- public isDependentType
- public isElaboratedTypeSpecifier
- public isEnumeralType
- public isEventT
- public isExtVectorBoolType
- public isExtVectorType
- public isFixedPointOrIntegerType
- public isFixedPointType
- public isFloat128Type
- public isFloat16Type
- public isFloatingType
- public isFromAST
- public isFunctionNoProtoType
- public isFunctionPointerType
- public isFunctionProtoType
- public isFunctionReferenceType
- public isFunctionType
- public isFundamentalType
- public isHalfType
- public isIbm128Type
- public isImageType
- public isIncompleteArrayType
- public isIncompleteOrObjectType
- public isIncompleteType
- public isInstantiationDependentType
- public isIntegerType
- public isIntegralOrEnumerationType
- public isIntegralOrUnscopedEnumerationType
- public isIntegralType
- public isInterfaceType
- public isLValueReferenceType
- public isLinkageValid
- public isLiteralType
- public isMatrixType
- public isMemberDataPointerType
- public isMemberFunctionPointerType
- public isMemberPointerType
- public isNonOverloadPlaceholderType
- public isNothrowT
- public isNullPtrType
- public isOCLExtOpaqueType
- public isOCLIntelSubgroupAVCType
- public isObjCARCBridgableType
- public isObjCARCImplicitlyUnretainedType
- public isObjCBoxableRecordType
- public isObjCBuiltinType
- public isObjCClassOrClassKindOfType
- public isObjCClassType
- public isObjCIdOrObjectKindOfType
- public isObjCIdType
- public isObjCIndependentClassType
- public isObjCIndirectLifetimeType
- public isObjCInertUnsafeUnretainedType
- public isObjCLifetimeType
- public isObjCNSObjectType
- public isObjCObjectOrInterfaceType
- public isObjCObjectPointerType
- public isObjCObjectType
- public isObjCQualifiedClassType
- public isObjCQualifiedIdType
- public isObjCQualifiedInterfaceType
- public isObjCRetainableType
- public isObjCSelType
- public isObjectPointerType
- public isObjectType
- public isOpenCLSpecificType
- public isOverloadableType
- public isPipeType
- public isPlaceholderType
- public isPointerType
- public isPromotableIntegerType
- public isQueueT
- public isRValueReferenceType
- public isRealFloatingType
- public isRealType
- public isRecordType
- public isReferenceType
- public isReserveIDT
- public isSamplerT
- public isSaturatedFixedPointType
- public isScalarType
- public isScopedEnumeralType
- public isSignedFixedPointType
- public isSignedIntegerOrEnumerationType
- public isSignedIntegerType
- public isSizelessBuiltinType
- public isSizelessType
- public isSpecificBuiltinType
- public isSpecificPlaceholderType
- public isSpecifierType
- public isStandardLayoutType
- public isStdByteType
- public isStructuralType
- public isStructureOrClassType
- public isStructureType
- public isTemplateTypeParmType
- public isTypedefNameType
- public isUndeducedAutoType
- public isUndeducedType
- public isUnionType
- public isUnsaturatedFixedPointType
- public isUnscopedEnumerationType
- public isUnsignedFixedPointType
- public isUnsignedIntegerOrEnumerationType
- public isUnsignedIntegerType
- public isVLSTBuiltinType
- public isVariableArrayType
- public isVariablyModifiedType
- public isVectorType
- public isVisibilityExplicit
- public isVoidPointerType
- public isVoidType
- public isWideCharType
- protected setDependence
- protected this_
Inherited from ExtQualsTypeCommonBase:
Methods
¶ElaboratedType(
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
clang::QualType NamedType,
clang::QualType CanonType,
clang::TagDecl* OwnedTagDecl)
ElaboratedType(
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
clang::QualType NamedType,
clang::QualType CanonType,
clang::TagDecl* OwnedTagDecl)
Description
The (re)declaration of this tag type owned by this occurrence is stored as a trailing object if there is one. Use getOwnedTagDecl to obtain it, or obtain a null pointer if there is none.
Declared at: clang/include/clang/AST/Type.h:5555
Parameters
- clang::ElaboratedTypeKeyword Keyword
- clang::NestedNameSpecifier* NNS
- clang::QualType NamedType
- clang::QualType CanonType
- clang::TagDecl* OwnedTagDecl
¶void Profile(llvm::FoldingSetNodeID& ID)
void Profile(llvm::FoldingSetNodeID& ID)
Declared at: clang/include/clang/AST/Type.h:5597
Parameters
¶static void Profile(
llvm::FoldingSetNodeID& ID,
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
clang::QualType NamedType,
clang::TagDecl* OwnedTagDecl)
static void Profile(
llvm::FoldingSetNodeID& ID,
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
clang::QualType NamedType,
clang::TagDecl* OwnedTagDecl)
Declared at: clang/include/clang/AST/Type.h:5601
Parameters
- llvm::FoldingSetNodeID& ID
- clang::ElaboratedTypeKeyword Keyword
- clang::NestedNameSpecifier* NNS
- clang::QualType NamedType
- clang::TagDecl* OwnedTagDecl
¶static bool classof(const clang::Type* T)
static bool classof(const clang::Type* T)
Declared at: clang/include/clang/AST/Type.h:5610
Parameters
- const clang::Type* T
¶clang::QualType desugar() const
clang::QualType desugar() const
Description
Remove a single level of sugar.
Declared at: clang/include/clang/AST/Type.h:5585
¶clang::QualType getNamedType() const
clang::QualType getNamedType() const
Description
Retrieve the type named by the qualified-id.
Declared at: clang/include/clang/AST/Type.h:5582
¶clang::TagDecl* getOwnedTagDecl() const
clang::TagDecl* getOwnedTagDecl() const
Description
Return the (re)declaration of this type owned by this occurrence of this type, or nullptr if there is none.
Declared at: clang/include/clang/AST/Type.h:5592
¶clang::NestedNameSpecifier* getQualifier() const
clang::NestedNameSpecifier* getQualifier() const
Description
Retrieve the qualification on this type.
Declared at: clang/include/clang/AST/Type.h:5579
¶bool isSugared() const
bool isSugared() const
Description
Returns whether this type directly provides sugar.
Declared at: clang/include/clang/AST/Type.h:5588