clang 20.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::AutoType Class Reference

Represents a C++11 auto or C++14 decltype(auto) type, possibly constrained by a type-constraint. More...

#include "clang/AST/Type.h"

Inheritance diagram for clang::AutoType:
Inheritance graph
[legend]

Public Member Functions

ArrayRef< TemplateArgumentgetTypeConstraintArguments () const
 
ConceptDeclgetTypeConstraintConcept () const
 
bool isConstrained () const
 
bool isDecltypeAuto () const
 
bool isGNUAutoType () const
 
AutoTypeKeyword getKeyword () const
 
void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context)
 
- Public Member Functions inherited from clang::DeducedType
bool isSugared () const
 
QualType desugar () const
 
QualType getDeducedType () const
 Get the type deduced for this placeholder type, or null if it has not been deduced.
 
bool isDeduced () const
 
- Public Member Functions inherited from clang::Type
 Type (const Type &)=delete
 
 Type (Type &&)=delete
 
Typeoperator= (const Type &)=delete
 
Typeoperator= (Type &&)=delete
 
TypeClass getTypeClass () const
 
bool isFromAST () const
 Whether this type comes from an AST file.
 
bool containsUnexpandedParameterPack () const
 Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templates.
 
bool isCanonicalUnqualified () const
 Determines if this type would be canonical if it had no further qualification.
 
QualType getLocallyUnqualifiedSingleStepDesugaredType () const
 Pull a single level of sugar off of this locally-unqualified type.
 
bool isSizelessType () const
 As an extension, we classify types as one of "sized" or "sizeless"; every type is one or the other.
 
bool isSizelessBuiltinType () const
 
bool isSizelessVectorType () const
 Returns true for all scalable vector types.
 
bool isSVESizelessBuiltinType () const
 Returns true for SVE scalable vector types.
 
bool isRVVSizelessBuiltinType () const
 Returns true for RVV scalable vector types.
 
bool isWebAssemblyExternrefType () const
 Check if this is a WebAssembly Externref Type.
 
bool isWebAssemblyTableType () const
 Returns true if this is a WebAssembly table type: either an array of reference types, or a pointer to a reference type (which can only be created by array to pointer decay).
 
bool isSveVLSBuiltinType () const
 Determines if this is a sizeless type supported by the 'arm_sve_vector_bits' type attribute, which can be applied to a single SVE vector or predicate, excluding tuple types such as svint32x4_t.
 
QualType getSveEltType (const ASTContext &Ctx) const
 Returns the representative type for the element of an SVE builtin type.
 
bool isRVVVLSBuiltinType () const
 Determines if this is a sizeless type supported by the 'riscv_rvv_vector_bits' type attribute, which can be applied to a single RVV vector or mask.
 
QualType getRVVEltType (const ASTContext &Ctx) const
 Returns the representative type for the element of an RVV builtin type.
 
QualType getSizelessVectorEltType (const ASTContext &Ctx) const
 Returns the representative type for the element of a sizeless vector builtin type.
 
bool isIncompleteType (NamedDecl **Def=nullptr) const
 Types are partitioned into 3 broad categories (C99 6.2.5p1): object types, function types, and incomplete types.
 
bool isIncompleteOrObjectType () const
 Return true if this is an incomplete or object type, in other words, not a function type.
 
bool isObjectType () const
 Determine whether this type is an object type.
 
bool isLiteralType (const ASTContext &Ctx) const
 Return true if this is a literal type (C++11 [basic.types]p10)
 
bool isStructuralType () const
 Determine if this type is a structural type, per C++20 [temp.param]p7.
 
bool isStandardLayoutType () const
 Test if this type is a standard-layout type.
 
bool isBuiltinType () const
 Helper methods to distinguish type categories.
 
bool isSpecificBuiltinType (unsigned K) const
 Test for a particular builtin type.
 
bool isPlaceholderType () const
 Test for a type which does not represent an actual type-system type but is instead used as a placeholder for various convenient purposes within Clang.
 
const BuiltinTypegetAsPlaceholderType () const
 
bool isSpecificPlaceholderType (unsigned K) const
 Test for a specific placeholder type.
 
bool isNonOverloadPlaceholderType () const
 Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType.
 
bool isIntegerType () const
 isIntegerType() does not include complex integers (a GCC extension).
 
bool isEnumeralType () const
 
bool isScopedEnumeralType () const
 Determine whether this type is a scoped enumeration type.
 
bool isBooleanType () const
 
bool isCharType () const
 
bool isWideCharType () const
 
bool isChar8Type () const
 
bool isChar16Type () const
 
bool isChar32Type () const
 
bool isAnyCharacterType () const
 Determine whether this type is any of the built-in character types.
 
bool isIntegralType (const ASTContext &Ctx) const
 Determine whether this type is an integral type.
 
bool isIntegralOrEnumerationType () const
 Determine whether this type is an integral or enumeration type.
 
bool isIntegralOrUnscopedEnumerationType () const
 Determine whether this type is an integral or unscoped enumeration type.
 
bool isUnscopedEnumerationType () const
 
bool isRealFloatingType () const
 Floating point categories.
 
bool isComplexType () const
 isComplexType() does not include complex integers (a GCC extension).
 
bool isAnyComplexType () const
 
bool isFloatingType () const
 
bool isHalfType () const
 
bool isFloat16Type () const
 
bool isFloat32Type () const
 
bool isDoubleType () const
 
bool isBFloat16Type () const
 
bool isFloat128Type () const
 
bool isIbm128Type () const
 
bool isRealType () const
 
bool isArithmeticType () const
 
bool isVoidType () const
 
bool isScalarType () const
 
bool isAggregateType () const
 Determines whether the type is a C++ aggregate type or C aggregate or union type.
 
bool isFundamentalType () const
 Tests whether the type is categorized as a fundamental type.
 
bool isCompoundType () const
 Tests whether the type is categorized as a compound type.
 
bool isFunctionType () const
 
bool isFunctionNoProtoType () const
 
bool isFunctionProtoType () const
 
bool isPointerType () const
 
bool isPointerOrReferenceType () const
 
bool isSignableType () const
 
bool isAnyPointerType () const
 
bool isCountAttributedType () const
 
bool isBlockPointerType () const
 
bool isVoidPointerType () const
 
bool isReferenceType () const
 
bool isLValueReferenceType () const
 
bool isRValueReferenceType () const
 
bool isObjectPointerType () const
 
bool isFunctionPointerType () const
 
bool isFunctionReferenceType () const
 
bool isMemberPointerType () const
 
bool isMemberFunctionPointerType () const
 
bool isMemberDataPointerType () const
 
bool isArrayType () const
 
bool isConstantArrayType () const
 
bool isIncompleteArrayType () const
 
bool isVariableArrayType () const
 
bool isArrayParameterType () const
 
bool isDependentSizedArrayType () const
 
bool isRecordType () const
 
bool isClassType () const
 
bool isStructureType () const
 
bool isStructureTypeWithFlexibleArrayMember () const
 
bool isObjCBoxableRecordType () const
 
bool isInterfaceType () const
 
bool isStructureOrClassType () const
 
bool isUnionType () const
 
bool isComplexIntegerType () const
 
bool isVectorType () const
 
bool isExtVectorType () const
 
bool isExtVectorBoolType () const
 
bool isSubscriptableVectorType () const
 
bool isMatrixType () const
 
bool isConstantMatrixType () const
 
bool isDependentAddressSpaceType () const
 
bool isObjCObjectPointerType () const
 
bool isObjCRetainableType () const
 
bool isObjCLifetimeType () const
 Returns true if objects of this type have lifetime semantics under ARC.
 
bool isObjCIndirectLifetimeType () const
 
bool isObjCNSObjectType () const
 
bool isObjCIndependentClassType () const
 
bool isObjCObjectType () const
 
bool isObjCQualifiedInterfaceType () const
 
bool isObjCQualifiedIdType () const
 
bool isObjCQualifiedClassType () const
 
bool isObjCObjectOrInterfaceType () const
 
bool isObjCIdType () const
 
bool isDecltypeType () const
 
bool isObjCInertUnsafeUnretainedType () const
 Was this type written with the special inert-in-ARC __unsafe_unretained qualifier?
 
bool isObjCIdOrObjectKindOfType (const ASTContext &ctx, const ObjCObjectType *&bound) const
 Whether the type is Objective-C 'id' or a __kindof type of an object type, e.g., __kindof NSView * or __kindof id <NSCopying>.
 
bool isObjCClassType () const
 
bool isObjCClassOrClassKindOfType () const
 Whether the type is Objective-C 'Class' or a __kindof type of an Class type, e.g., __kindof Class <NSCopying>.
 
bool isBlockCompatibleObjCPointerType (ASTContext &ctx) const
 
bool isObjCSelType () const
 
bool isObjCBuiltinType () const
 
bool isObjCARCBridgableType () const
 Determine whether the given type T is a "bridgable" Objective-C type, which is either an Objective-C object pointer type or an.
 
bool isCARCBridgableType () const
 Determine whether the given type T is a "bridgeable" C type.
 
bool isTemplateTypeParmType () const
 
bool isNullPtrType () const
 
bool isNothrowT () const
 
bool isAlignValT () const
 
bool isStdByteType () const
 
bool isAtomicType () const
 
bool isUndeducedAutoType () const
 
bool isTypedefNameType () const
 Determines whether this type is written as a typedef-name.
 
bool isImageType () const
 
bool isSamplerT () const
 
bool isEventT () const
 
bool isClkEventT () const
 
bool isQueueT () const
 
bool isReserveIDT () const
 
bool isOCLIntelSubgroupAVCType () const
 
bool isOCLExtOpaqueType () const
 
bool isPipeType () const
 
bool isBitIntType () const
 
bool isOpenCLSpecificType () const
 
bool isHLSLSpecificType () const
 
bool isHLSLBuiltinIntangibleType () const
 
bool isHLSLAttributedResourceType () const
 
bool isHLSLIntangibleType () const
 
bool