class DependentNameType
Declaration
class DependentNameType : public TypeWithKeyword, public Node { /* full declaration omitted */ };
Description
Represents a qualified type name for which the type name is dependent. DependentNameType represents a class of dependent types that involve a possibly dependent nested-name-specifier (e.g., "T::") followed by a name of a type. The DependentNameType may start with a "typename" (for a typename-specifier), "class", "struct", "union", or "enum" (for a dependent elaborated-type-specifier), or nothing (in contexts where we know that we must be referring to a type, e.g., in a base class specifier). Typically the nested-name-specifier is dependent, but in MSVC compatibility mode, this type is used with non-dependent names to delay name lookup until instantiation.
Declared at: clang/include/clang/AST/Type.h:5625
Inherits from: TypeWithKeyword, FoldingSetBase::Node
Member Variables
- private clang::NestedNameSpecifier* NNS
- The nested name specifier containing the qualifier.
- private const clang::IdentifierInfo* Name
- The type that this typename specifier refers to.
Inherited from Type:
Method Overview
- private DependentNameType(clang::ElaboratedTypeKeyword Keyword, clang::NestedNameSpecifier * NNS, const clang::IdentifierInfo * Name, clang::QualType CanonType)
- public void Profile(llvm::FoldingSetNodeID & ID)
- public static void Profile(llvm::FoldingSetNodeID & ID, clang::ElaboratedTypeKeyword Keyword, clang::NestedNameSpecifier * NNS, const clang::IdentifierInfo * Name)
- public static bool classof(const clang::Type * T)
- public clang::QualType desugar() const
- public const clang::IdentifierInfo * getIdentifier() 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
¶DependentNameType(
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
const clang::IdentifierInfo* Name,
clang::QualType CanonType)
DependentNameType(
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
const clang::IdentifierInfo* Name,
clang::QualType CanonType)
Declared at: clang/include/clang/AST/Type.h:5634
Parameters
- clang::ElaboratedTypeKeyword Keyword
- clang::NestedNameSpecifier* NNS
- const clang::IdentifierInfo* Name
- clang::QualType CanonType
¶void Profile(llvm::FoldingSetNodeID& ID)
void Profile(llvm::FoldingSetNodeID& ID)
Declared at: clang/include/clang/AST/Type.h:5657
Parameters
¶static void Profile(
llvm::FoldingSetNodeID& ID,
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
const clang::IdentifierInfo* Name)
static void Profile(
llvm::FoldingSetNodeID& ID,
clang::ElaboratedTypeKeyword Keyword,
clang::NestedNameSpecifier* NNS,
const clang::IdentifierInfo* Name)
Declared at: clang/include/clang/AST/Type.h:5661
Parameters
- llvm::FoldingSetNodeID& ID
- clang::ElaboratedTypeKeyword Keyword
- clang::NestedNameSpecifier* NNS
- const clang::IdentifierInfo* Name
¶static bool classof(const clang::Type* T)
static bool classof(const clang::Type* T)
Declared at: clang/include/clang/AST/Type.h:5668
Parameters
- const clang::Type* T
¶clang::QualType desugar() const
clang::QualType desugar() const
Declared at: clang/include/clang/AST/Type.h:5655
¶const clang::IdentifierInfo* getIdentifier() const
const clang::IdentifierInfo* getIdentifier() const
Description
Retrieve the type named by the typename specifier as an identifier. This routine will return a non-NULL identifier pointer when the form of the original typename was terminated by an identifier, e.g., "typename T::type".
Declared at: clang/include/clang/AST/Type.h:5650
¶clang::NestedNameSpecifier* getQualifier() const
clang::NestedNameSpecifier* getQualifier() const
Description
Retrieve the qualification on this type.
Declared at: clang/include/clang/AST/Type.h:5643
¶bool isSugared() const
bool isSugared() const
Declared at: clang/include/clang/AST/Type.h:5654