class CXXRecordDecl
Declaration
class CXXRecordDecl : public RecordDecl { /* full declaration omitted */ };
Description
Represents a C++ struct/union/class.
Declared at: clang/include/clang/AST/DeclCXX.h:254
Inherits from: RecordDecl
Member Variables
- private struct DefinitionData* DefinitionData
- private llvm::PointerUnion<ClassTemplateDecl*, MemberSpecializationInfo*> TemplateOrInstantiation
- For non-templates, this value will be null. For record declarations that describe a class template, this will be a pointer to a ClassTemplateDecl. For member classes of class template specializations, this will be the MemberSpecializationInfo referring to the member class that was instantiated or specialized.
Inherited from DeclContext:
- protected
- protected FirstDecl = nullptr
- protected LastDecl = nullptr
Inherited from Decl:
- protected NextInContextAndBits
- protected Access
- protected FromASTFile
- protected IdentifierNamespace
- protected CacheValidAndLinkage
Method Overview
- protected CXXRecordDecl(clang::Decl::Kind K, clang::TagDecl::TagKind TK, const clang::ASTContext & C, clang::DeclContext * DC, clang::SourceLocation StartLoc, clang::SourceLocation IdLoc, clang::IdentifierInfo * Id, clang::CXXRecordDecl * PrevDecl)
- public static clang::CXXRecordDecl * Create(const clang::ASTContext & C, clang::TagDecl::TagKind TK, clang::DeclContext * DC, clang::SourceLocation StartLoc, clang::SourceLocation IdLoc, clang::IdentifierInfo * Id, clang::CXXRecordDecl * PrevDecl = nullptr, bool DelayTypeCreation = false)
- public static clang::CXXRecordDecl * CreateDeserialized(const clang::ASTContext & C, unsigned int ID)
- public static clang::CXXRecordDecl * CreateLambda(const clang::ASTContext & C, clang::DeclContext * DC, clang::TypeSourceInfo * Info, clang::SourceLocation Loc, unsigned int DependencyKind, bool IsGeneric, clang::LambdaCaptureDefault CaptureDefault)
- public static bool FindBaseClass(const clang::CXXBaseSpecifier * Specifier, clang::CXXBasePath & Path, const clang::CXXRecordDecl * BaseRecord)
- public static bool FindVirtualBaseClass(const clang::CXXBaseSpecifier * Specifier, clang::CXXBasePath & Path, const clang::CXXRecordDecl * BaseRecord)
- public static clang::AccessSpecifier MergeAccess(clang::AccessSpecifier PathAccess, clang::AccessSpecifier DeclAccess)
- private void addedClassSubobject(clang::CXXRecordDecl * Base)
- public void addedEligibleSpecialMemberFunction(const clang::CXXMethodDecl * MD, unsigned int SMKind)
- private void addedMember(clang::Decl * D)
- public void addedSelectedDestructor(clang::CXXDestructorDecl * DD)
- public bool allowConstDefaultInit() const
- public clang::CXXRecordDecl::base_class_const_range bases() const
- public clang::CXXRecordDecl::base_class_range bases()
- public clang::CXXRecordDecl::base_class_iterator bases_begin()
- public clang::CXXRecordDecl::base_class_const_iterator bases_begin() const
- public clang::CXXRecordDecl::base_class_iterator bases_end()
- public clang::CXXRecordDecl::base_class_const_iterator bases_end() const
- public clang::MSInheritanceModel calculateInheritanceModel() const
- public unsigned int capture_size() const
- public clang::CXXRecordDecl::capture_const_range captures() const
- public clang::CXXRecordDecl::capture_const_iterator captures_begin() const
- public clang::CXXRecordDecl::capture_const_iterator captures_end() const
- public static bool classof(const clang::Decl * D)
- public static bool classofKind(clang::Decl::Kind K)
- public void completeDefinition()
- public void completeDefinition(clang::CXXFinalOverriderMap * FinalOverriders)
- public clang::CXXRecordDecl::conversion_iterator conversion_begin() const
- public clang::CXXRecordDecl::conversion_iterator conversion_end() const
- public clang::CXXRecordDecl::ctor_iterator ctor_begin() const
- public clang::CXXRecordDecl::ctor_iterator ctor_end() const
- public clang::CXXRecordDecl::ctor_range ctors() const
- private struct DefinitionData & data() const
- private struct DefinitionData * dataPtr() const
- public bool defaultedCopyConstructorIsDeleted() const
- public bool defaultedDefaultConstructorIsConstexpr() const
- public bool defaultedDestructorIsConstexpr() const
- public bool defaultedDestructorIsDeleted() const
- public bool defaultedMoveConstructorIsDeleted() const
- public void finishedDefaultedOrDeletedMember(clang::CXXMethodDecl * MD)
- public bool forallBases(clang::CXXRecordDecl::ForallBasesCallback BaseMatches) const
- public clang::CXXRecordDecl::friend_iterator friend_begin() const
- public clang::CXXRecordDecl::friend_iterator friend_end() const
- public clang::CXXRecordDecl::friend_range friends() const
- public const clang::CXXRecordDecl * getCanonicalDecl() const
- public clang::CXXRecordDecl * getCanonicalDecl()
- public void getCaptureFields(llvm::DenseMap<const VarDecl *, FieldDecl *> & Captures, clang::FieldDecl *& ThisCapture) const
- public clang::CXXRecordDecl * getDefinition() const
- public clang::FunctionTemplateDecl * getDependentLambdaCallOperator() const
- public clang::ClassTemplateDecl * getDescribedClassTemplate() const
- public clang::CXXDestructorDecl * getDestructor() const
- public unsigned int getDeviceLambdaManglingNumber() const
- public void getFinalOverriders(clang::CXXFinalOverriderMap & FinaOverriders) const
- private clang::FriendDecl * getFirstFriend() const
- public clang::TemplateParameterList * getGenericLambdaTemplateParameterList() const
- public void getIndirectPrimaryBases(clang::CXXIndirectPrimaryBaseSet & Bases) const
- public clang::CXXRecordDecl * getInstantiatedFromMemberClass() const
- public clang::CXXMethodDecl * getLambdaCallOperator() const
- public clang::LambdaCaptureDefault getLambdaCaptureDefault() const
- public clang::Decl * getLambdaContextDecl() const
- private struct LambdaDefinitionData & getLambdaData() const
- public unsigned int getLambdaDependencyKind() const
- public ArrayRef<clang::NamedDecl *> getLambdaExplicitTemplateParameters() const
- public unsigned int getLambdaManglingNumber() const
- public clang::CXXMethodDecl * getLambdaStaticInvoker(clang::CallingConv CC) const
- public clang::CXXMethodDecl * getLambdaStaticInvoker() const
- public clang::TypeSourceInfo * getLambdaTypeInfo() const
- public clang::MSInheritanceModel getMSInheritanceModel() const
- public clang::MSVtorDispMode getMSVtorDispMode() const
- public clang::MemberSpecializationInfo * getMemberSpecializationInfo() const
- public clang::CXXRecordDecl * getMostRecentDecl()
- public const clang::CXXRecordDecl * getMostRecentDecl() const
- public const clang::CXXRecordDecl * getMostRecentNonInjectedDecl() const
- public clang::CXXRecordDecl * getMostRecentNonInjectedDecl()
- public unsigned int getNumBases() const
- public unsigned int getNumVBases() const
- public unsigned int getODRHash() const
- public const clang::CXXRecordDecl * getPreviousDecl() const
- public clang::CXXRecordDecl * getPreviousDecl()
- public const clang::CXXRecordDecl * getTemplateInstantiationPattern() const
- public clang::CXXRecordDecl * getTemplateInstantiationPattern()
- public clang::TemplateSpecializationKind getTemplateSpecializationKind() const
- public llvm::iterator_range<conversion_iterator> getVisibleConversionFunctions() const
- public bool hasAnyDependentBases() const
- public bool hasConstexprDefaultConstructor() const
- public bool hasConstexprDestructor() const
- public bool hasConstexprNonCopyMoveConstructor() const
- public bool hasCopyAssignmentWithConstParam() const
- public bool hasCopyConstructorWithConstParam() const
- public bool hasDefaultConstructor() const
- public bool hasDefinition() const
- public bool hasDirectFields() const
- public bool hasFriends() const
- public bool hasInClassInitializer() const
- public bool hasInheritedAssignment() const
- public bool hasInheritedConstructor() const
- public bool hasInitMethod() const
- public bool hasIrrelevantDestructor() const
- public bool hasKnownLambdaInternalLinkage() const
- public bool hasMemberName(clang::DeclarationName N) const
- public bool hasMoveAssignment() const
- public bool hasMoveConstructor() const
- public bool hasMutableFields() const
- public bool hasNonLiteralTypeFieldsOrBases() const
- public bool hasNonTrivialCopyAssignment() const
- public bool hasNonTrivialCopyConstructor() const
- public bool hasNonTrivialCopyConstructorForCall() const
- public bool hasNonTrivialDefaultConstructor() const
- public bool hasNonTrivialDestructor() const
- public bool hasNonTrivialDestructorForCall() const
- public bool hasNonTrivialMoveAssignment() const
- public bool hasNonTrivialMoveConstructor() const
- public bool hasNonTrivialMoveConstructorForCall() const
- public bool hasPrivateFields() const
- public bool hasProtectedFields() const
- public bool hasSimpleCopyAssignment() const
- public bool hasSimpleCopyConstructor() const
- public bool hasSimpleDestructor() const
- public bool hasSimpleMoveAssignment() const
- public bool hasSimpleMoveConstructor() const
- private bool hasSubobjectAtOffsetZeroOfEmptyBaseType(clang::ASTContext & Ctx, const clang::CXXRecordDecl * X)
- public bool hasTrivialCopyAssignment() const
- public bool hasTrivialCopyConstructor() const
- public bool hasTrivialCopyConstructorForCall() const
- public bool hasTrivialDefaultConstructor() const
- public bool hasTrivialDestructor() const
- public bool hasTrivialDestructorForCall() const
- public bool hasTrivialMoveAssignment() const
- public bool hasTrivialMoveConstructor() const
- public bool hasTrivialMoveConstructorForCall() const
- public bool hasUninitializedReferenceMember() const
- public bool hasUserDeclaredConstructor() const
- public bool hasUserDeclaredCopyAssignment() const
- public bool hasUserDeclaredCopyConstructor() const
- public bool hasUserDeclaredDestructor() const
- public bool hasUserDeclaredMoveAssignment() const
- public bool hasUserDeclaredMoveConstructor() const
- public bool hasUserDeclaredMoveOperation() const
- public bool hasUserProvidedDefaultConstructor() const
- public bool hasVariantMembers() const
- public bool implicitCopyAssignmentHasConstParam() const
- public bool implicitCopyConstructorHasConstParam() const
- public bool isAbstract() const
- public bool isAggregate() const
- public bool isAnyDestructorNoReturn() const
- public bool isCLike() const
- public bool isCXX11StandardLayout() const
- public bool isCurrentInstantiation(const clang::DeclContext * CurContext) const
- public bool isDependentLambda() const
- public bool isDerivedFrom(const clang::CXXRecordDecl * Base) const
- public bool isDerivedFrom(const clang::CXXRecordDecl * Base, clang::CXXBasePaths & Paths) const
- public bool isDynamicClass() const
- public bool isEffectivelyFinal() const
- public bool isEmpty() const
- public bool isGenericLambda() const
- public bool isInterfaceLike() const
- public bool isLambda() const
- public bool isLiteral() const
- public clang::FunctionDecl * isLocalClass()
- public const clang::FunctionDecl * isLocalClass() const
- public bool isNeverDependentLambda() const
- public bool isPOD() const
- public bool isParsingBaseSpecifiers() const
- public bool isPolymorphic() const
- public bool isProvablyNotDerivedFrom(const clang::CXXRecordDecl * Base) const
- public bool isStandardLayout() const
- public bool isStructural() const
- public bool isTrivial() const
- public bool isTriviallyCopyable() const
- public bool isVirtuallyDerivedFrom(const clang::CXXRecordDecl * Base) const
- public bool lambdaIsDefaultConstructibleAndAssignable() const
- public std::vector<const NamedDecl *> lookupDependentName(clang::DeclarationName Name, llvm::function_ref<bool (const NamedDecl *)> Filter)
- public bool lookupInBases(clang::CXXRecordDecl::BaseMatchesCallback BaseMatches, clang::CXXBasePaths & Paths, bool LookupInDependent = false) const
- public void markAbstract()
- private void markedVirtualFunctionPure()
- public bool mayBeAbstract() const
- public bool mayBeDynamicClass() const
- public bool mayBeNonDynamicClass() const
- public clang::CXXRecordDecl::method_iterator method_begin() const
- public clang::CXXRecordDecl::method_iterator method_end() const
- public clang::CXXRecordDecl::method_range methods() const
- public bool needsImplicitCopyAssignment() const
- public bool needsImplicitCopyConstructor() const
- public bool needsImplicitDefaultConstructor() const
- public bool needsImplicitDestructor() const
- public bool needsImplicitMoveAssignment() const
- public bool needsImplicitMoveConstructor() const
- public bool needsOverloadResolutionForCopyAssignment() const
- public bool needsOverloadResolutionForCopyConstructor() const
- public bool needsOverloadResolutionForDestructor() const
- public bool needsOverloadResolutionForMoveAssignment() const
- public bool needsOverloadResolutionForMoveConstructor() const
- public bool nullFieldOffsetIsZero() const
- public void pushFriendDecl(clang::FriendDecl * FD)
- public void removeConversion(const clang::NamedDecl * Old)
- public void setBases(const clang::CXXBaseSpecifier *const * Bases, unsigned int NumBases)
- public void setCaptures(clang::ASTContext & Context, ArrayRef<clang::LambdaCapture> Captures)
- public void setDescribedClassTemplate(clang::ClassTemplateDecl * Template)
- public void setDeviceLambdaManglingNumber(unsigned int Num) const
- public void setHasTrivialSpecialMemberForCall()
- public void setImplicitCopyAssignmentIsDeleted()
- public void setImplicitCopyConstructorIsDeleted()
- public void setImplicitDestructorIsDeleted()
- public void setImplicitMoveAssignmentIsDeleted()
- public void setImplicitMoveConstructorIsDeleted()
- public void setInitMethod(bool Val)
- public void setInstantiationOfMemberClass(clang::CXXRecordDecl * RD, clang::TemplateSpecializationKind TSK)
- public void setIsParsingBaseSpecifiers()
- public void setLambdaMangling(unsigned int ManglingNumber, clang::Decl * ContextDecl, bool HasKnownInternalLinkage = false)
- public void setTemplateSpecializationKind(clang::TemplateSpecializationKind TSK)
- public void setTrivialForCallFlags(clang::CXXMethodDecl * MD)
- public clang::CXXRecordDecl::base_class_const_range vbases() const
- public clang::CXXRecordDecl::base_class_range vbases()
- public clang::CXXRecordDecl::base_class_const_iterator vbases_begin() const
- public clang::CXXRecordDecl::base_class_iterator vbases_begin()
- public clang::CXXRecordDecl::base_class_const_iterator vbases_end() const
- public clang::CXXRecordDecl::base_class_iterator vbases_end()
- public void viewInheritance(clang::ASTContext & Context) const
Inherited from RecordDecl:
- public Create
- public CreateDeserialized
- public canPassInRegisters
- public classof
- public classofKind
- public completeDefinition
- public field_begin
- public field_empty
- public field_end
- public fields
- public findFirstNamedDataMember
- public getArgPassingRestrictions
- public getDefinition
- public getMostRecentDecl
- public getMostRecentDecl
- public getPreviousDecl
- public getPreviousDecl
- public hasFlexibleArrayMember
- public hasLoadedFieldsFromExternalStorage
- public hasNonTrivialToPrimitiveCopyCUnion
- public hasNonTrivialToPrimitiveDefaultInitializeCUnion
- public hasNonTrivialToPrimitiveDestructCUnion
- public hasObjectMember
- public hasVolatileMember
- public isAnonymousStructOrUnion
- public isCapturedRecord
- public isInjectedClassName
- public isLambda
- public isMsStruct
- public isNonTrivialToPrimitiveCopy
- public isNonTrivialToPrimitiveDefaultInitialize
- public isNonTrivialToPrimitiveDestroy
- public isOrContainsUnion
- public isParamDestroyedInCallee
- public isRandomized
- public mayInsertExtraPadding
- public reorderDecls
- public setAnonymousStructOrUnion
- public setArgPassingRestrictions
- public setCapturedRecord
- public setHasFlexibleArrayMember
- public setHasLoadedFieldsFromExternalStorage
- public setHasNonTrivialToPrimitiveCopyCUnion
- public setHasNonTrivialToPrimitiveDefaultInitializeCUnion
- public setHasNonTrivialToPrimitiveDestructCUnion
- public setHasObjectMember
- public setHasVolatileMember
- public setIsRandomized
- public setNonTrivialToPrimitiveCopy
- public setNonTrivialToPrimitiveDefaultInitialize
- public setNonTrivialToPrimitiveDestroy
- public setParamDestroyedInCallee
Inherited from TagDecl:
- public castFromDeclContext
- public castToDeclContext
- public classof
- public classofKind
- protected completeDefinition
- public demoteThisDefinitionToDeclaration
- public getBraceRange
- public getCanonicalDecl
- public getCanonicalDecl
- public getDefinition
- public getInnerLocStart
- public getKindName
- protected getMostRecentDeclImpl
- protected getNextRedeclarationImpl
- public getNumTemplateParameterLists
- public getOuterLocStart
- protected getPreviousDeclImpl
- public getQualifier
- public getQualifierLoc
- public getSourceRange
- public getTagKind
- public getTemplateParameterList
- public getTypedefNameForAnonDecl
- public hasNameForLinkage
- public isBeingDefined
- public isClass
- public isCompleteDefinition
- public isCompleteDefinitionRequired
- public isDependentType
- public isEmbeddedInDeclarator
- public isEnum
- public isFreeStanding
- public isInterface
- public isStruct
- public isThisDeclarationADefinition
- public isThisDeclarationADemotedDefinition
- public isUnion
- public mayHaveOutOfDateDef
- protected setBeingDefined
- public setBraceRange
- public setCompleteDefinition
- public setCompleteDefinitionRequired
- public setEmbeddedInDeclarator
- public setFreeStanding
- protected setMayHaveOutOfDateDef
- public setQualifierInfo
- public setTagKind
- public setTemplateParameterListsInfo
- public setTypedefNameForAnonDecl
- public startDefinition
Inherited from DeclContext:
- protected BuildDeclChain
- public Encloses
- public Equals
- public InEnclosingNamespaceSetOf
- public addDecl
- public addDeclInternal
- public addHiddenDecl
- public buildLookup
- public classof
- public classof
- public collectAllContexts
- public containsDecl
- public containsDeclAndLoad
- public ddiags
- public decls
- public decls_begin
- public decls_empty
- public decls_end
- public dumpDeclContext
- public dumpLookups
- public dumpLookups
- public getDeclKind
- public getDeclKindName
- public getEnclosingNamespaceContext
- public getEnclosingNamespaceContext
- public getExternCContext
- public getInnermostBlockDecl
- public getLexicalParent
- public getLexicalParent
- public getLookupParent
- public getLookupParent
- public getLookupPtr
- public getNonClosureAncestor
- public getNonClosureAncestor
- public getNonTransparentContext
- public getNonTransparentContext
- public getOuterLexicalRecordContext
- public getOuterLexicalRecordContext
- public getParent
- public getParent
- public getParentASTContext
- public getPrimaryContext
- public getPrimaryContext
- public getRedeclContext
- public getRedeclContext
- public hasExternalLexicalStorage
- public hasExternalVisibleStorage
- public isClosure
- public isDeclInLexicalTraversal
- public isDependentContext
- public isExternCContext
- public isExternCXXContext
- public isFileContext
- public isFunctionOrMethod
- public isInlineNamespace
- public isLookupContext
- public isNamespace
- public isObjCContainer
- public isRecord
- public isStdNamespace
- public isTranslationUnit
- public isTransparentContext
- public localUncachedLookup
- public lookup
- public lookups
- public lookups_begin
- public lookups_end
- public makeDeclVisibleInContext
- public noload_decls
- public noload_decls_begin
- public noload_decls_end
- public noload_lookup
- public noload_lookups
- public noload_lookups_begin
- public noload_lookups_end
- public removeDecl
- public setHasExternalLexicalStorage
- public setHasExternalVisibleStorage
- public setMustBuildLookupTable
- public setUseQualifiedLookup
- public shouldUseQualifiedLookup
- public using_directives
Inherited from TypeDecl:
- public classof
- public classofKind
- public getBeginLoc
- public getSourceRange
- public getTypeForDecl
- public setLocStart
- public setTypeForDecl
Inherited from NamedDecl:
- public classof
- public classofKind
- public declarationReplaces
- public getDeclName
- public getExplicitVisibility
- public getFormalLinkage
- public getIdentifier
- public getLinkageAndVisibility
- public getLinkageInternal
- public getMostRecentDecl
- public getMostRecentDecl
- public getName
- public getNameAsString
- public getNameForDiagnostic
- public getObjCFStringFormattingFamily
- public getQualifiedNameAsString
- public getUnderlyingDecl
- public getUnderlyingDecl
- public getVisibility
- public hasExternalFormalLinkage
- public hasLinkage
- public hasLinkageBeenComputed
- public isCXXClassMember
- public isCXXInstanceMember
- public isExternallyDeclarable
- public isExternallyVisible
- public isLinkageValid
- public isReserved
- public printName
- public printNestedNameSpecifier
- public printNestedNameSpecifier
- public printQualifiedName
- public printQualifiedName
- public setDeclName
Inherited from Decl:
- public EnableStatistics
- public PrintStats
- public add
- public addAttr
- public attr_begin
- public attr_end
- public attrs
- public canBeWeakImported
- public castFromDeclContext
- public castToDeclContext
- public classofKind
- public dropAttr
- public dropAttrs
- public dump
- public dump
- public dumpColor
- public getASTContext
- protected getASTMutationListener
- public getAccess
- public getAccessUnsafe
- public getAsFunction
- public getAsFunction
- public getAttr
- public getAttrs
- public getAttrs
- public getAvailability
- public getBeginLoc
- public getBody
- public getBodyRBrace
- protected getCachedLinkage
- public getCanonicalDecl
- public getCanonicalDecl
- public getDeclContext
- public getDeclContext
- public getDeclKindName
- public getDefiningAttr
- public getDescribedTemplate
- public getDescribedTemplateParams
- public getEndLoc
- public getExternalSourceSymbolAttr
- public getFriendObjectKind
- public getFunctionType
- public getGlobalID
- public getID
- public getIdentifierNamespace
- public getIdentifierNamespaceForKind
- public getImportedOwningModule
- public getKind
- public getLangOpts
- public getLexicalDeclContext
- public getLexicalDeclContext
- public getLocalOwningModule
- public getLocation
- public getMaxAlignment
- public getModuleOwnershipKind
- public getMostRecentDecl
- public getMostRecentDecl
- protected getMostRecentDeclImpl
- public getNextDeclInContext
- public getNextDeclInContext
- protected getNextRedeclarationImpl
- public getNonClosureContext
- public getNonClosureContext
- public getOwningModule
- public getOwningModuleForLinkage
- public getOwningModuleID
- public getParentFunctionOrMethod
- public getParentFunctionOrMethod
- public getPreviousDecl
- public getPreviousDecl
- protected getPreviousDeclImpl
- public getSourceRange
- public getTemplateDepth
- public getTranslationUnitDecl
- public getTranslationUnitDecl
- public getVersionIntroduced
- public hasAttr
- public hasAttrs
- public hasBody
- protected hasCachedLinkage
- public hasDefiningAttr
- protected hasLocalOwningModuleStorage
- public hasOwningModule
- public hasTagIdentifierNamespace
- public isCanonicalDecl
- public isDefinedOutsideFunctionOrMethod
- public isDeprecated
- public isDiscardedInGlobalModuleFragment
- public isFirstDecl
- public isFromASTFile
- public isFunctionOrFunctionTemplate
- public isImplicit
- public isInAnonymousNamespace
- public isInExportDeclContext
- public isInIdentifierNamespace
- public isInLocalScopeForInstantiation
- public isInStdNamespace
- public isInvalidDecl
- public isInvisibleOutsideTheOwningModule
- public isLocalExternDecl
- public isModulePrivate
- public isOutOfLine
- public isParameterPack
- public isReachable
- public isReferenced
- public isTagIdentifierNamespace
- public isTemplateDecl
- public isTemplateParameter
- public isTemplateParameterPack
- public isTemplated
- public isThisDeclarationReferenced
- public isTopLevelDeclInObjCContainer
- public isUnavailable
- public isUnconditionallyVisible
- public isUsed
- public isWeakImported
- public markUsed
- public print
- public print
- public printGroup
- public redecls
- public redecls_begin
- public redecls_end
- public setAccess
- public setAttrs
- protected setCachedLinkage
- public setDeclContext
- public setFromASTFile
- public setImplicit
- public setInvalidDecl
- public setIsUsed
- public setLexicalDeclContext
- public setLocalExternDecl
- public setLocalOwningModule
- public setLocation
- public setModuleOwnershipKind
- protected setModulePrivate
- public setNonMemberOperator
- public setObjectOfFriendDecl
- public setOwningModuleID
- public setReferenced
- public setTopLevelDeclInObjCContainer
- public setVisibleDespiteOwningModule
- public specific_attr_begin
- public specific_attr_end
- public specific_attrs
- protected updateOutOfDate
Methods
¶CXXRecordDecl(clang::Decl::Kind K,
clang::TagDecl::TagKind TK,
const clang::ASTContext& C,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::IdentifierInfo* Id,
clang::CXXRecordDecl* PrevDecl)
CXXRecordDecl(clang::Decl::Kind K,
clang::TagDecl::TagKind TK,
const clang::ASTContext& C,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::IdentifierInfo* Id,
clang::CXXRecordDecl* PrevDecl)
Declared at: clang/include/clang/AST/DeclCXX.h:490
Parameters
- clang::Decl::Kind K
- clang::TagDecl::TagKind TK
- const clang::ASTContext& C
- clang::DeclContext* DC
- clang::SourceLocation StartLoc
- clang::SourceLocation IdLoc
- clang::IdentifierInfo* Id
- clang::CXXRecordDecl* PrevDecl
¶static clang::CXXRecordDecl* Create(
const clang::ASTContext& C,
clang::TagDecl::TagKind TK,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::IdentifierInfo* Id,
clang::CXXRecordDecl* PrevDecl = nullptr,
bool DelayTypeCreation = false)
static clang::CXXRecordDecl* Create(
const clang::ASTContext& C,
clang::TagDecl::TagKind TK,
clang::DeclContext* DC,
clang::SourceLocation StartLoc,
clang::SourceLocation IdLoc,
clang::IdentifierInfo* Id,
clang::CXXRecordDecl* PrevDecl = nullptr,
bool DelayTypeCreation = false)
Declared at: clang/include/clang/AST/DeclCXX.h:551
Parameters
- const clang::ASTContext& C
- clang::TagDecl::TagKind TK
- clang::DeclContext* DC
- clang::SourceLocation StartLoc
- clang::SourceLocation IdLoc
- clang::IdentifierInfo* Id
- clang::CXXRecordDecl* PrevDecl = nullptr
- bool DelayTypeCreation = false
¶static clang::CXXRecordDecl* CreateDeserialized(
const clang::ASTContext& C,
unsigned int ID)
static clang::CXXRecordDecl* CreateDeserialized(
const clang::ASTContext& C,
unsigned int ID)
Declared at: clang/include/clang/AST/DeclCXX.h:560
Parameters
- const clang::ASTContext& C
- unsigned int ID
¶static clang::CXXRecordDecl* CreateLambda(
const clang::ASTContext& C,
clang::DeclContext* DC,
clang::TypeSourceInfo* Info,
clang::SourceLocation Loc,
unsigned int DependencyKind,
bool IsGeneric,
clang::LambdaCaptureDefault CaptureDefault)
static clang::CXXRecordDecl* CreateLambda(
const clang::ASTContext& C,
clang::DeclContext* DC,
clang::TypeSourceInfo* Info,
clang::SourceLocation Loc,
unsigned int DependencyKind,
bool IsGeneric,
clang::LambdaCaptureDefault CaptureDefault)
Declared at: clang/include/clang/AST/DeclCXX.h:556
Parameters
- const clang::ASTContext& C
- clang::DeclContext* DC
- clang::TypeSourceInfo* Info
- clang::SourceLocation Loc
- unsigned int DependencyKind
- bool IsGeneric
- clang::LambdaCaptureDefault CaptureDefault
¶static bool FindBaseClass(
const clang::CXXBaseSpecifier* Specifier,
clang::CXXBasePath& Path,
const clang::CXXRecordDecl* BaseRecord)
static bool FindBaseClass(
const clang::CXXBaseSpecifier* Specifier,
clang::CXXBasePath& Path,
const clang::CXXRecordDecl* BaseRecord)
Description
Base-class lookup callback that determines whether the given base class specifier refers to a specific class declaration. This callback can be used with \c lookupInBases() to determine whether a given derived class has is a base class subobject of a particular type. The base record pointer should refer to the canonical CXXRecordDecl of the base class that we are searching for.
Declared at: clang/include/clang/AST/DeclCXX.h:1638
Parameters
- const clang::CXXBaseSpecifier* Specifier
- clang::CXXBasePath& Path
- const clang::CXXRecordDecl* BaseRecord
¶static bool FindVirtualBaseClass(
const clang::CXXBaseSpecifier* Specifier,
clang::CXXBasePath& Path,
const clang::CXXRecordDecl* BaseRecord)
static bool FindVirtualBaseClass(
const clang::CXXBaseSpecifier* Specifier,
clang::CXXBasePath& Path,
const clang::CXXRecordDecl* BaseRecord)
Description
Base-class lookup callback that determines whether the given base class specifier refers to a specific class declaration and describes virtual derivation. This callback can be used with \c lookupInBases() to determine whether a given derived class has is a virtual base class subobject of a particular type. The base record pointer should refer to the canonical CXXRecordDecl of the base class that we are searching for.
Declared at: clang/include/clang/AST/DeclCXX.h:1650
Parameters
- const clang::CXXBaseSpecifier* Specifier
- clang::CXXBasePath& Path
- const clang::CXXRecordDecl* BaseRecord
¶static clang::AccessSpecifier MergeAccess(
clang::AccessSpecifier PathAccess,
clang::AccessSpecifier DeclAccess)
static clang::AccessSpecifier MergeAccess(
clang::AccessSpecifier PathAccess,
clang::AccessSpecifier DeclAccess)
Description
Calculates the access of a decl that is reached along a path.
Declared at: clang/include/clang/AST/DeclCXX.h:1685
Parameters
- clang::AccessSpecifier PathAccess
- clang::AccessSpecifier DeclAccess
¶void addedClassSubobject(
clang::CXXRecordDecl* Base)
void addedClassSubobject(
clang::CXXRecordDecl* Base)
Description
Called from setBases and addedMember to notify the class that a direct or virtual base class or a member of class type has been added.
Declared at: clang/include/clang/AST/DeclCXX.h:468
Parameters
- clang::CXXRecordDecl* Base
¶void addedEligibleSpecialMemberFunction(
const clang::CXXMethodDecl* MD,
unsigned int SMKind)
void addedEligibleSpecialMemberFunction(
const clang::CXXMethodDecl* MD,
unsigned int SMKind)
Description
Notify the class that an eligible SMF has been added. This updates triviality and destructor based properties of the class accordingly.
Declared at: clang/include/clang/AST/DeclCXX.h:1436
Parameters
- const clang::CXXMethodDecl* MD
- unsigned int SMKind
¶void addedMember(clang::Decl* D)
void addedMember(clang::Decl* D)
Description
Notify the class that member has been added. This routine helps maintain information about the class based on which members have been added. It will be invoked by DeclContext::addDecl() whenever a member is added to this record.
Declared at: clang/include/clang/AST/DeclCXX.h:475
Parameters
- clang::Decl* D
¶void addedSelectedDestructor(
clang::CXXDestructorDecl* DD)
void addedSelectedDestructor(
clang::CXXDestructorDecl* DD)
Description
Notify the class that this destructor is now selected. Important properties of the class depend on destructor properties. Since C++20, it is possible to have multiple destructor declarations in a class out of which one will be selected at the end. This is called separately from addedMember because it has to be deferred to the completion of the class.
Declared at: clang/include/clang/AST/DeclCXX.h:1432
Parameters
¶bool allowConstDefaultInit() const
bool allowConstDefaultInit() const
Description
Determine whether declaring a const variable with this type is ok per core issue 253.
Declared at: clang/include/clang/AST/DeclCXX.h:1346
¶clang::CXXRecordDecl::base_class_const_range
bases() const
clang::CXXRecordDecl::base_class_const_range
bases() const
Declared at: clang/include/clang/AST/DeclCXX.h:599
¶clang::CXXRecordDecl::base_class_range bases()
clang::CXXRecordDecl::base_class_range bases()
Declared at: clang/include/clang/AST/DeclCXX.h:596
¶clang::CXXRecordDecl::base_class_iterator
bases_begin()
clang::CXXRecordDecl::base_class_iterator
bases_begin()
Declared at: clang/include/clang/AST/DeclCXX.h:603
¶clang::CXXRecordDecl::base_class_const_iterator
bases_begin() const
clang::CXXRecordDecl::base_class_const_iterator
bases_begin() const
Declared at: clang/include/clang/AST/DeclCXX.h:604
¶clang::CXXRecordDecl::base_class_iterator
bases_end()
clang::CXXRecordDecl::base_class_iterator
bases_end()
Declared at: clang/include/clang/AST/DeclCXX.h:605
¶clang::CXXRecordDecl::base_class_const_iterator
bases_end() const
clang::CXXRecordDecl::base_class_const_iterator
bases_end() const
Declared at: clang/include/clang/AST/DeclCXX.h:606
¶clang::MSInheritanceModel
calculateInheritanceModel() const
clang::MSInheritanceModel
calculateInheritanceModel() const
Description
Calculate what the inheritance model would be for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:1772
¶unsigned int capture_size() const
unsigned int capture_size() const
Declared at: clang/include/clang/AST/DeclCXX.h:1079
¶clang::CXXRecordDecl::capture_const_range
captures() const
clang::CXXRecordDecl::capture_const_range
captures() const
Declared at: clang/include/clang/AST/DeclCXX.h:1066
¶clang::CXXRecordDecl::capture_const_iterator
captures_begin() const
clang::CXXRecordDecl::capture_const_iterator
captures_begin() const
Declared at: clang/include/clang/AST/DeclCXX.h:1070
¶clang::CXXRecordDecl::capture_const_iterator
captures_end() const
clang::CXXRecordDecl::capture_const_iterator
captures_end() const
Declared at: clang/include/clang/AST/DeclCXX.h:1074
¶static bool classof(const clang::Decl* D)
static bool classof(const clang::Decl* D)
Declared at: clang/include/clang/AST/DeclCXX.h:1819
Parameters
- const clang::Decl* D
¶static bool classofKind(clang::Decl::Kind K)
static bool classofKind(clang::Decl::Kind K)
Declared at: clang/include/clang/AST/DeclCXX.h:1820
Parameters
- clang::Decl::Kind K
¶void completeDefinition()
void completeDefinition()
Description
Indicates that the definition of this class is now complete.
Declared at: clang/include/clang/AST/DeclCXX.h:1699
¶void completeDefinition(
clang::CXXFinalOverriderMap* FinalOverriders)
void completeDefinition(
clang::CXXFinalOverriderMap* FinalOverriders)
Description
Indicates that the definition of this class is now complete, and provides a final overrider map to help determine
Declared at: clang/include/clang/AST/DeclCXX.h:1708
Parameters
- clang::CXXFinalOverriderMap* FinalOverriders
- The final overrider map for this class, which can be provided as an optimization for abstract-class checking. If NULL, final overriders will be computed if they are needed to complete the definition.
¶clang::CXXRecordDecl::conversion_iterator
conversion_begin() const
clang::CXXRecordDecl::conversion_iterator
conversion_begin() const
Declared at: clang/include/clang/AST/DeclCXX.h:1083
¶clang::CXXRecordDecl::conversion_iterator
conversion_end() const
clang::CXXRecordDecl::conversion_iterator
conversion_end() const
Declared at: clang/include/clang/AST/DeclCXX.h:1087
¶clang::CXXRecordDecl::ctor_iterator ctor_begin()
const
clang::CXXRecordDecl::ctor_iterator ctor_begin()
const
Declared at: clang/include/clang/AST/DeclCXX.h:660
¶clang::CXXRecordDecl::ctor_iterator ctor_end()
const
clang::CXXRecordDecl::ctor_iterator ctor_end()
const
Declared at: clang/include/clang/AST/DeclCXX.h:664
¶clang::CXXRecordDecl::ctor_range ctors() const
clang::CXXRecordDecl::ctor_range ctors() const
Declared at: clang/include/clang/AST/DeclCXX.h:658
¶struct DefinitionData& data() const
struct DefinitionData& data() const
Declared at: clang/include/clang/AST/DeclCXX.h:440
¶struct DefinitionData* dataPtr() const
struct DefinitionData* dataPtr() const
Declared at: clang/include/clang/AST/DeclCXX.h:434
¶bool defaultedCopyConstructorIsDeleted() const
bool defaultedCopyConstructorIsDeleted() const
Description
\c true if a defaulted copy constructor for this class would be deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:685
¶bool defaultedDefaultConstructorIsConstexpr()
const
bool defaultedDefaultConstructorIsConstexpr()
const
Description
Determine whether a defaulted default constructor for this class would be constexpr.
Declared at: clang/include/clang/AST/DeclCXX.h:1218
¶bool defaultedDestructorIsConstexpr() const
bool defaultedDestructorIsConstexpr() const
Description
Determine whether a defaulted default constructor for this class would be constexpr.
Declared at: clang/include/clang/AST/DeclCXX.h:1311
¶bool defaultedDestructorIsDeleted() const
bool defaultedDestructorIsDeleted() const
Description
\c true if a defaulted destructor for this class would be deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:702
¶bool defaultedMoveConstructorIsDeleted() const
bool defaultedMoveConstructorIsDeleted() const
Description
\c true if a defaulted move constructor for this class would be deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:694
¶void finishedDefaultedOrDeletedMember(
clang::CXXMethodDecl* MD)
void finishedDefaultedOrDeletedMember(
clang::CXXMethodDecl* MD)
Description
Indicates that the declaration of a defaulted or deleted special member function is now complete.
Declared at: clang/include/clang/AST/DeclCXX.h:1694
Parameters
¶bool forallBases(
clang::CXXRecordDecl::ForallBasesCallback
BaseMatches) const
bool forallBases(
clang::CXXRecordDecl::ForallBasesCallback
BaseMatches) const
Description
Determines if the given callback holds for all the direct or indirect base classes of this type. The class itself does not count as a base class. This routine returns false if the class has non-computable base classes.
Declared at: clang/include/clang/AST/DeclCXX.h:1591
Parameters
- clang::CXXRecordDecl::ForallBasesCallback BaseMatches
- Callback invoked for each (direct or indirect) base class of this type until a call returns false.
¶clang::CXXRecordDecl::friend_iterator
friend_begin() const
clang::CXXRecordDecl::friend_iterator
friend_begin() const
Declared at: clang/include/clang/AST/DeclCXX.h:674
¶clang::CXXRecordDecl::friend_iterator friend_end()
const
clang::CXXRecordDecl::friend_iterator friend_end()
const
Declared at: clang/include/clang/AST/DeclCXX.h:675
¶clang::CXXRecordDecl::friend_range friends() const
clang::CXXRecordDecl::friend_range friends() const
Declared at: clang/include/clang/AST/DeclCXX.h:673
¶const clang::CXXRecordDecl* getCanonicalDecl()
const
const clang::CXXRecordDecl* getCanonicalDecl()
const
Declared at: clang/include/clang/AST/DeclCXX.h:505
¶clang::CXXRecordDecl* getCanonicalDecl()
clang::CXXRecordDecl* getCanonicalDecl()
Description
Retrieves the "canonical" declaration of the given declaration.
Declared at: clang/include/clang/AST/DeclCXX.h:501
¶void getCaptureFields(
llvm::DenseMap<const VarDecl*, FieldDecl*>&
Captures,
clang::FieldDecl*& ThisCapture) const
void getCaptureFields(
llvm::DenseMap<const VarDecl*, FieldDecl*>&
Captures,
clang::FieldDecl*& ThisCapture) const
Description
For a closure type, retrieve the mapping from captured variables and \c this to the non-static data members that store the values or references of the captures.
Declared at: clang/include/clang/AST/DeclCXX.h:1060
Parameters
- llvm::DenseMap<const VarDecl*, FieldDecl*>& Captures
- Will be populated with the mapping from captured variables to the corresponding fields.
- clang::FieldDecl*& ThisCapture
- Will be set to the field declaration for the\c this capture.
¶clang::CXXRecordDecl* getDefinition() const
clang::CXXRecordDecl* getDefinition() const
Declared at: clang/include/clang/AST/DeclCXX.h:542
¶clang::FunctionTemplateDecl*
getDependentLambdaCallOperator() const
clang::FunctionTemplateDecl*
getDependentLambdaCallOperator() const
Description
Retrieve the dependent lambda call operator of the closure type if this is a templated closure type.
Declared at: clang/include/clang/AST/DeclCXX.h:1020
¶clang::ClassTemplateDecl*
getDescribedClassTemplate() const
clang::ClassTemplateDecl*
getDescribedClassTemplate() const
Description
Retrieves the class template that is described by this class declaration. Every class template is represented as a ClassTemplateDecl and a CXXRecordDecl. The former contains template properties (such as the template parameter lists) while the latter contains the actual description of the template's contents. ClassTemplateDecl::getTemplatedDecl() retrieves the CXXRecordDecl that from a ClassTemplateDecl, while getDescribedClassTemplate() retrieves the ClassTemplateDecl from a CXXRecordDecl.
Declared at: clang/include/clang/AST/DeclCXX.h:1480
¶clang::CXXDestructorDecl* getDestructor() const
clang::CXXDestructorDecl* getDestructor() const
Description
Returns the destructor decl for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:1502
¶unsigned int getDeviceLambdaManglingNumber() const
unsigned int getDeviceLambdaManglingNumber() const
Description
Retrieve the device side mangling number.
Declared at: clang/include/clang/AST/DeclCXX.h:1766
¶void getFinalOverriders(
clang::CXXFinalOverriderMap& FinaOverriders)
const
void getFinalOverriders(
clang::CXXFinalOverriderMap& FinaOverriders)
const
Description
Retrieve the final overriders for each virtual member function in the class hierarchy where this class is the most-derived class in the class hierarchy.
Declared at: clang/include/clang/AST/DeclCXX.h:1657
Parameters
- clang::CXXFinalOverriderMap& FinaOverriders
¶clang::FriendDecl* getFirstFriend() const
clang::FriendDecl* getFirstFriend() const
Description
Get the head of our list of friend declarations, possibly deserializing the friends from an external AST source.
Declared at: clang/include/clang/AST/DeclCXX.h:481
¶clang::TemplateParameterList*
getGenericLambdaTemplateParameterList() const
clang::TemplateParameterList*
getGenericLambdaTemplateParameterList() const
Description
Retrieve the generic lambda's template parameter list. Returns null if the class does not represent a lambda or a generic lambda.
Declared at: clang/include/clang/AST/DeclCXX.h:1035
¶void getIndirectPrimaryBases(
clang::CXXIndirectPrimaryBaseSet& Bases) const
void getIndirectPrimaryBases(
clang::CXXIndirectPrimaryBaseSet& Bases) const
Description
Get the indirect primary bases for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:1660
Parameters
¶clang::CXXRecordDecl*
getInstantiatedFromMemberClass() const
clang::CXXRecordDecl*
getInstantiatedFromMemberClass() const
Description
If this record is an instantiation of a member class, retrieves the member class from which it was instantiated. This routine will return non-null for (non-templated) member classes of class templates. For example, given: The declaration for X <int >::A is a (non-templated) CXXRecordDecl whose parent is the class template specialization X <int >. For this declaration, getInstantiatedFromMemberClass() will return the CXXRecordDecl X <T >::A. When a complete definition of X <int >::A is required, it will be instantiated from the declaration returned by getInstantiatedFromMemberClass().
Declared at: clang/include/clang/AST/DeclCXX.h:1457
¶clang::CXXMethodDecl* getLambdaCallOperator()
const
clang::CXXMethodDecl* getLambdaCallOperator()
const
Description
Retrieve the lambda call operator of the closure type if this is a closure type.
Declared at: clang/include/clang/AST/DeclCXX.h:1016
¶clang::LambdaCaptureDefault
getLambdaCaptureDefault() const
clang::LambdaCaptureDefault
getLambdaCaptureDefault() const
Declared at: clang/include/clang/AST/DeclCXX.h:1040
¶clang::Decl* getLambdaContextDecl() const
clang::Decl* getLambdaContextDecl() const
Description
Retrieve the declaration that provides additional context for a lambda, when the normal declaration context is not specific enough. Certain contexts (default arguments of in-class function parameters and the initializers of data members) have separate name mangling rules for lambdas within the Itanium C++ ABI. For these cases, this routine provides the declaration in which the lambda occurs, e.g., the function parameter or the non-static data member. Otherwise, it returns NULL to imply that the declaration context suffices.
Declared at: clang/include/clang/AST/DeclCXX.h:1750
¶struct LambdaDefinitionData& getLambdaData() const
struct LambdaDefinitionData& getLambdaData() const
Declared at: clang/include/clang/AST/DeclCXX.h:446
¶unsigned int getLambdaDependencyKind() const
unsigned int getLambdaDependencyKind() const
Declared at: clang/include/clang/AST/DeclCXX.h:1805
¶ArrayRef<clang::NamedDecl*>
getLambdaExplicitTemplateParameters() const
ArrayRef<clang::NamedDecl*>
getLambdaExplicitTemplateParameters() const
Description
Retrieve the lambda template parameters that were specified explicitly.
Declared at: clang/include/clang/AST/DeclCXX.h:1038
¶unsigned int getLambdaManglingNumber() const
unsigned int getLambdaManglingNumber() const
Description
If this is the closure type of a lambda expression, retrieve the number to be used for name mangling in the Itanium C++ ABI. Zero indicates that this closure type has internal linkage, so the mangling number does not matter, while a non-zero value indicates which lambda expression this is in this particular context.
Declared at: clang/include/clang/AST/DeclCXX.h:1729
¶clang::CXXMethodDecl* getLambdaStaticInvoker(
clang::CallingConv CC) const
clang::CXXMethodDecl* getLambdaStaticInvoker(
clang::CallingConv CC) const
Declared at: clang/include/clang/AST/DeclCXX.h:1030
Parameters
- clang::CallingConv CC
¶clang::CXXMethodDecl* getLambdaStaticInvoker()
const
clang::CXXMethodDecl* getLambdaStaticInvoker()
const
Description
Retrieve the lambda static invoker, the address of which is returned by the conversion operator, and the body of which is forwarded to the lambda call operator. The version that does not take a calling convention uses the 'default' calling convention for free functions if the Lambda's calling convention was not modified via attribute. Otherwise, it will return the calling convention specified for the lambda.
Declared at: clang/include/clang/AST/DeclCXX.h:1029
¶clang::TypeSourceInfo* getLambdaTypeInfo() const
clang::TypeSourceInfo* getLambdaTypeInfo() const
Declared at: clang/include/clang/AST/DeclCXX.h:1811
¶clang::MSInheritanceModel getMSInheritanceModel()
const
clang::MSInheritanceModel getMSInheritanceModel()
const
Description
Returns the inheritance model used for this record.
Declared at: clang/include/clang/AST/DeclCXX.h:1769
¶clang::MSVtorDispMode getMSVtorDispMode() const
clang::MSVtorDispMode getMSVtorDispMode() const
Description
Controls when vtordisps will be emitted if this record is used as a virtual base.
Declared at: clang/include/clang/AST/DeclCXX.h:1784
¶clang::MemberSpecializationInfo*
getMemberSpecializationInfo() const
clang::MemberSpecializationInfo*
getMemberSpecializationInfo() const
Description
If this class is an instantiation of a member class of a class template specialization, retrieves the member specialization information.
Declared at: clang/include/clang/AST/DeclCXX.h:1462
¶clang::CXXRecordDecl* getMostRecentDecl()
clang::CXXRecordDecl* getMostRecentDecl()
Declared at: clang/include/clang/AST/DeclCXX.h:518
¶const clang::CXXRecordDecl* getMostRecentDecl()
const
const clang::CXXRecordDecl* getMostRecentDecl()
const
Declared at: clang/include/clang/AST/DeclCXX.h:523
¶const clang::CXXRecordDecl*
getMostRecentNonInjectedDecl() const
const clang::CXXRecordDecl*
getMostRecentNonInjectedDecl() const
Declared at: clang/include/clang/AST/DeclCXX.h:538
¶clang::CXXRecordDecl*
getMostRecentNonInjectedDecl()
clang::CXXRecordDecl*
getMostRecentNonInjectedDecl()
Declared at: clang/include/clang/AST/DeclCXX.h:527
¶unsigned int getNumBases() const
unsigned int getNumBases() const
Description
Retrieves the number of base classes of this class.
Declared at: clang/include/clang/AST/DeclCXX.h:590
¶unsigned int getNumVBases() const
unsigned int getNumVBases() const
Description
Retrieves the number of virtual base classes of this class.
Declared at: clang/include/clang/AST/DeclCXX.h:611
¶unsigned int getODRHash() const
unsigned int getODRHash() const
Declared at: clang/include/clang/AST/DeclCXX.h:584
¶const clang::CXXRecordDecl* getPreviousDecl()
const
const clang::CXXRecordDecl* getPreviousDecl()
const
Declared at: clang/include/clang/AST/DeclCXX.h:514
¶clang::CXXRecordDecl* getPreviousDecl()
clang::CXXRecordDecl* getPreviousDecl()
Declared at: clang/include/clang/AST/DeclCXX.h:509
¶const clang::CXXRecordDecl*
getTemplateInstantiationPattern() const
const clang::CXXRecordDecl*
getTemplateInstantiationPattern() const
Description
Retrieve the record declaration from which this record could be instantiated. Returns null if this class is not a template instantiation.
Declared at: clang/include/clang/AST/DeclCXX.h:1494
¶clang::CXXRecordDecl*
getTemplateInstantiationPattern()
clang::CXXRecordDecl*
getTemplateInstantiationPattern()
Declared at: clang/include/clang/AST/DeclCXX.h:1496
¶clang::TemplateSpecializationKind
getTemplateSpecializationKind() const
clang::TemplateSpecializationKind
getTemplateSpecializationKind() const
Description
Determine whether this particular class is a specialization or instantiation of a class template or member class of a class template, and how it was instantiated or specialized.
Declared at: clang/include/clang/AST/DeclCXX.h:1487
¶llvm::iterator_range<conversion_iterator>
getVisibleConversionFunctions() const
llvm::iterator_range<conversion_iterator>
getVisibleConversionFunctions() const
Description
Get all conversion functions visible in current class, including conversion function templates.
Declared at: clang/include/clang/AST/DeclCXX.h:1099
¶bool hasAnyDependentBases() const
bool hasAnyDependentBases() const
Description
Determine whether this class has any dependent base classes which are not the current instantiation.
Declared at: clang/include/clang/AST/DeclCXX.h:629
¶bool hasConstexprDefaultConstructor() const
bool hasConstexprDefaultConstructor() const
Description
Determine whether this class has a constexpr default constructor.
Declared at: clang/include/clang/AST/DeclCXX.h:1225
¶bool hasConstexprDestructor() const
bool hasConstexprDestructor() const
Description
Determine whether this class has a constexpr destructor.
Declared at: clang/include/clang/AST/DeclCXX.h:1317
¶bool hasConstexprNonCopyMoveConstructor() const
bool hasConstexprNonCopyMoveConstructor() const
Description
Determine whether this class has at least one constexpr constructor other than the copy or move constructors.
Declared at: clang/include/clang/AST/DeclCXX.h:1210
¶bool hasCopyAssignmentWithConstParam() const
bool hasCopyAssignmentWithConstParam() const
Description
Determine whether this class has a copy assignment operator with a parameter type which is a reference to a const-qualified type or is not a reference.
Declared at: clang/include/clang/AST/DeclCXX.h:934
¶bool hasCopyConstructorWithConstParam() const
bool hasCopyConstructorWithConstParam() const
Description
Determine whether this class has a copy constructor with a parameter type which is a reference to a const-qualified type.
Declared at: clang/include/clang/AST/DeclCXX.h:816
¶bool hasDefaultConstructor() const
bool hasDefaultConstructor() const
Description
Determine whether this class has any default constructors.
Declared at: clang/include/clang/AST/DeclCXX.h:745
¶bool hasDefinition() const
bool hasDefinition() const
Declared at: clang/include/clang/AST/DeclCXX.h:549
¶bool hasDirectFields() const
bool hasDirectFields() const
Description
Determine whether this class has direct non-static data members.
Declared at: clang/include/clang/AST/DeclCXX.h:1162
¶bool hasFriends() const
bool hasFriends() const
Description
Determines whether this record has any friends.
Declared at: clang/include/clang/AST/DeclCXX.h:679
¶bool hasInClassInitializer() const
bool hasInClassInitializer() const
Description
Whether this class has any in-class initializers for non-static data members (including those in anonymous unions or structs).
Declared at: clang/include/clang/AST/DeclCXX.h:1110
¶bool hasInheritedAssignment() const
bool hasInheritedAssignment() const
Description
Determine whether this class has a using-declaration that names a base class assignment operator.
Declared at: clang/include/clang/AST/DeclCXX.h:1375
¶bool hasInheritedConstructor() const
bool hasInheritedConstructor() const
Description
Determine whether this class has a using-declaration that names a user-declared base class constructor.
Declared at: clang/include/clang/AST/DeclCXX.h:1369
¶bool hasInitMethod() const
bool hasInitMethod() const
Declared at: clang/include/clang/AST/DeclCXX.h:1151
¶bool hasIrrelevantDestructor() const
bool hasIrrelevantDestructor() const
Description
Determine whether this class has a destructor which has no semantic effect. Any such destructor will be trivial, public, defaulted and not deleted, and will call only irrelevant destructors.
Declared at: clang/include/clang/AST/DeclCXX.h:1357
¶bool hasKnownLambdaInternalLinkage() const
bool hasKnownLambdaInternalLinkage() const
Description
The lambda is known to has internal linkage no matter whether it has name mangling number.
Declared at: clang/include/clang/AST/DeclCXX.h:1736
¶bool hasMemberName(clang::DeclarationName N) const
bool hasMemberName(clang::DeclarationName N) const
Description
Determine whether this class has a member with the given name, possibly in a non-dependent base class. No check for ambiguity is performed, so this should never be used when implementing language semantics, but it may be appropriate for warnings, static analysis, or similar.
Declared at: clang/include/clang/AST/DeclCXX.h:1668
Parameters
¶bool hasMoveAssignment() const
bool hasMoveAssignment() const
Description
Determine whether this class has a move assignment operator.
Declared at: clang/include/clang/AST/DeclCXX.h:947
¶bool hasMoveConstructor() const
bool hasMoveConstructor() const
Description
Determine whether this class has a move constructor.
Declared at: clang/include/clang/AST/DeclCXX.h:839
¶bool hasMutableFields() const
bool hasMutableFields() const
Description
Determine whether this class, or any of its class subobjects, contains a mutable field.
Declared at: clang/include/clang/AST/DeclCXX.h:1188
¶bool hasNonLiteralTypeFieldsOrBases() const
bool hasNonLiteralTypeFieldsOrBases() const
Description
Determine whether this class has a non-literal or/ volatile type non-static data member or base class.
Declared at: clang/include/clang/AST/DeclCXX.h:1363
¶bool hasNonTrivialCopyAssignment() const
bool hasNonTrivialCopyAssignment() const
Description
Determine whether this class has a non-trivial copy assignment operator (C++ [class.copy]p11, C++11 [class.copy]p25)
Declared at: clang/include/clang/AST/DeclCXX.h:1289
¶bool hasNonTrivialCopyConstructor() const
bool hasNonTrivialCopyConstructor() const
Description
Determine whether this class has a non-trivial copy constructor (C++ [class.copy]p6, C++11 [class.copy]p12)
Declared at: clang/include/clang/AST/DeclCXX.h:1243
¶bool hasNonTrivialCopyConstructorForCall() const
bool hasNonTrivialCopyConstructorForCall() const
Declared at: clang/include/clang/AST/DeclCXX.h:1248
¶bool hasNonTrivialDefaultConstructor() const
bool hasNonTrivialDefaultConstructor() const
Description
Determine whether this class has a non-trivial default constructor (C++11 [class.ctor]p5).
Declared at: clang/include/clang/AST/DeclCXX.h:1202
¶bool hasNonTrivialDestructor() const
bool hasNonTrivialDestructor() const
Description
Determine whether this class has a non-trivial destructor (C++ [class.dtor]p3)
Declared at: clang/include/clang/AST/DeclCXX.h:1331
¶bool hasNonTrivialDestructorForCall() const
bool hasNonTrivialDestructorForCall() const
Declared at: clang/include/clang/AST/DeclCXX.h:1335
¶bool hasNonTrivialMoveAssignment() const
bool hasNonTrivialMoveAssignment() const
Description
Determine whether this class has a non-trivial move assignment operator (C++11 [class.copy]p25)
Declared at: clang/include/clang/AST/DeclCXX.h:1303
¶bool hasNonTrivialMoveConstructor() const
bool hasNonTrivialMoveConstructor() const
Description
Determine whether this class has a non-trivial move constructor (C++11 [class.copy]p12)
Declared at: clang/include/clang/AST/DeclCXX.h:1268
¶bool hasNonTrivialMoveConstructorForCall() const
bool hasNonTrivialMoveConstructorForCall() const
Declared at: clang/include/clang/AST/DeclCXX.h:1274
¶bool hasPrivateFields() const
bool hasPrivateFields() const
Declared at: clang/include/clang/AST/DeclCXX.h:1153
¶bool hasProtectedFields() const
bool hasProtectedFields() const
Declared at: clang/include/clang/AST/DeclCXX.h:1157
¶bool hasSimpleCopyAssignment() const
bool hasSimpleCopyAssignment() const
Description
\c true if we know for sure that this class has a single, accessible, unambiguous copy assignment operator that is not deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:725
¶bool hasSimpleCopyConstructor() const
bool hasSimpleCopyConstructor() const
Description
\c true if we know for sure that this class has a single, accessible, unambiguous copy constructor that is not deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:711
¶bool hasSimpleDestructor() const
bool hasSimpleDestructor() const
Description
\c true if we know for sure that this class has an accessible destructor that is not deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:739
¶bool hasSimpleMoveAssignment() const
bool hasSimpleMoveAssignment() const
Description
\c true if we know for sure that this class has a single, accessible, unambiguous move assignment operator that is not deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:732
¶bool hasSimpleMoveConstructor() const
bool hasSimpleMoveConstructor() const
Description
\c true if we know for sure that this class has a single, accessible, unambiguous move constructor that is not deleted.
Declared at: clang/include/clang/AST/DeclCXX.h:718
¶bool hasSubobjectAtOffsetZeroOfEmptyBaseType(
clang::ASTContext& Ctx,
const clang::CXXRecordDecl* X)
bool hasSubobjectAtOffsetZeroOfEmptyBaseType(
clang::ASTContext& Ctx,
const clang::CXXRecordDecl* X)
Description
Determine whether this class has an empty base class subobject of type X or of one of the types that might be at offset 0 within X (per the C++ "standard layout" rules).
Declared at: clang/include/clang/AST/DeclCXX.h:486
Parameters
- clang::ASTContext& Ctx
- const clang::CXXRecordDecl* X
¶bool hasTrivialCopyAssignment() const
bool hasTrivialCopyAssignment() const
Description
Determine whether this class has a trivial copy assignment operator (C++ [class.copy]p11, C++11 [class.copy]p25)
Declared at: clang/include/clang/AST/DeclCXX.h:1283
¶bool hasTrivialCopyConstructor() const
bool hasTrivialCopyConstructor() const
Description
Determine whether this class has a trivial copy constructor (C++ [class.copy]p6, C++11 [class.copy]p12)
Declared at: clang/include/clang/AST/DeclCXX.h:1233
¶bool hasTrivialCopyConstructorForCall() const
bool hasTrivialCopyConstructorForCall() const
Declared at: clang/include/clang/AST/DeclCXX.h:1237
¶bool hasTrivialDefaultConstructor() const
bool hasTrivialDefaultConstructor() const
Description
Determine whether this class has a trivial default constructor (C++11 [class.ctor]p5).
Declared at: clang/include/clang/AST/DeclCXX.h:1195
¶bool hasTrivialDestructor() const
bool hasTrivialDestructor() const
Description
Determine whether this class has a trivial destructor (C++ [class.dtor]p3)
Declared at: clang/include/clang/AST/DeclCXX.h:1321
¶bool hasTrivialDestructorForCall() const
bool hasTrivialDestructorForCall() const
Declared at: clang/include/clang/AST/DeclCXX.h:1325
¶bool hasTrivialMoveAssignment() const
bool hasTrivialMoveAssignment() const
Description
Determine whether this class has a trivial move assignment operator (C++11 [class.copy]p25)
Declared at: clang/include/clang/AST/DeclCXX.h:1296
¶bool hasTrivialMoveConstructor() const
bool hasTrivialMoveConstructor() const
Description
Determine whether this class has a trivial move constructor (C++11 [class.copy]p12)
Declared at: clang/include/clang/AST/DeclCXX.h:1256
¶bool hasTrivialMoveConstructorForCall() const
bool hasTrivialMoveConstructorForCall() const
Declared at: clang/include/clang/AST/DeclCXX.h:1261
¶bool hasUninitializedReferenceMember() const
bool hasUninitializedReferenceMember() const
Description
Whether this class or any of its subobjects has any members of reference type which would make value-initialization ill-formed. Per C++03 [dcl.init]p5: - if T is a non-union class type without a user-declared constructor, then every non-static data member and base-class component of T is value-initialized [...] A program that calls for [...] value-initialization of an entity of reference type is ill-formed.
Declared at: clang/include/clang/AST/DeclCXX.h:1120
¶bool hasUserDeclaredConstructor() const
bool hasUserDeclaredConstructor() const
Description
Determine whether this class has any user-declared constructors. When true, a default constructor will not be implicitly declared.
Declared at: clang/include/clang/AST/DeclCXX.h:768
¶bool hasUserDeclaredCopyAssignment() const
bool hasUserDeclaredCopyAssignment() const
Description
Determine whether this class has a user-declared copy assignment operator. When false, a copy assignment operator will be implicitly declared.
Declared at: clang/include/clang/AST/DeclCXX.h:891
¶bool hasUserDeclaredCopyConstructor() const
bool hasUserDeclaredCopyConstructor() const
Description
Determine whether this class has a user-declared copy constructor. When false, a copy constructor will be implicitly declared.
Declared at: clang/include/clang/AST/DeclCXX.h:781
¶bool hasUserDeclaredDestructor() const
bool hasUserDeclaredDestructor() const
Description
Determine whether this class has a user-declared destructor. When false, a destructor will be implicitly declared.
Declared at: clang/include/clang/AST/DeclCXX.h:982
¶bool hasUserDeclaredMoveAssignment() const
bool hasUserDeclaredMoveAssignment() const
Description
Determine whether this class has had a move assignment declared by the user.
Declared at: clang/include/clang/AST/DeclCXX.h:942
¶bool hasUserDeclaredMoveConstructor() const
bool hasUserDeclaredMoveConstructor() const
Description
Determine whether this class has had a move constructor declared by the user.
Declared at: clang/include/clang/AST/DeclCXX.h:834
¶bool hasUserDeclaredMoveOperation() const
bool hasUserDeclaredMoveOperation() const
Description
Whether this class has a user-declared move constructor or assignment operator. When false, a move constructor and assignment operator may be implicitly declared.
Declared at: clang/include/clang/AST/DeclCXX.h:827
¶bool hasUserProvidedDefaultConstructor() const
bool hasUserProvidedDefaultConstructor() const
Description
Whether this class has a user-provided default constructor per C++11.
Declared at: clang/include/clang/AST/DeclCXX.h:774
¶bool hasVariantMembers() const
bool hasVariantMembers() const
Description
Determine whether this class has any variant members.
Declared at: clang/include/clang/AST/DeclCXX.h:1191
¶bool implicitCopyAssignmentHasConstParam() const
bool implicitCopyAssignmentHasConstParam() const
Description
Determine whether an implicit copy assignment operator for this type would have a parameter with a const-qualified reference type.
Declared at: clang/include/clang/AST/DeclCXX.h:927
¶bool implicitCopyConstructorHasConstParam() const
bool implicitCopyConstructorHasConstParam() const
Description
Determine whether an implicit copy constructor for this type would have a parameter with a const-qualified reference type.
Declared at: clang/include/clang/AST/DeclCXX.h:808
¶bool isAbstract() const
bool isAbstract() const
Description
Determine whether this class has a pure virtual function. The class is is abstract per (C++ [class.abstract]p2) if it declares a pure virtual function or inherits a pure virtual function that is not overridden.
Declared at: clang/include/clang/AST/DeclCXX.h:1176
¶bool isAggregate() const
bool isAggregate() const
Description
Determine whether this class is an aggregate (C++ [dcl.init.aggr]), which is a class with no user-declared constructors, no private or protected non-static data members, no base classes, and no virtual functions (C++ [dcl.init.aggr]p1).
Declared at: clang/include/clang/AST/DeclCXX.h:1105
¶bool isAnyDestructorNoReturn() const
bool isAnyDestructorNoReturn() const
Description
Returns true if the class destructor, or any implicitly invoked destructors are marked noreturn.
Declared at: clang/include/clang/AST/DeclCXX.h:1506
¶bool isCLike() const
bool isCLike() const
Description
True if this class is C-like, without C++-specific features, e.g. it contains only public fields, no bases, tag kind is not 'class', etc.
Declared at: clang/include/clang/AST/DeclCXX.h:1137
¶bool isCXX11StandardLayout() const
bool isCXX11StandardLayout() const
Description
Determine whether this class was standard-layout per C++11 [class]p7, specifically using the C++11 rules without any DRs.
Declared at: clang/include/clang/AST/DeclCXX.h:1184
¶bool isCurrentInstantiation(
const clang::DeclContext* CurContext) const
bool isCurrentInstantiation(
const clang::DeclContext* CurContext) const
Description
Determine whether this dependent class is a current instantiation, when viewed from within the given context.
Declared at: clang/include/clang/AST/DeclCXX.h:1524
Parameters
- const clang::DeclContext* CurContext
¶bool isDependentLambda() const
bool isDependentLambda() const
Description
Determine whether this lambda expression was known to be dependent at the time it was created, even if its context does not appear to be dependent. This flag is a workaround for an issue with parsing, where default arguments are parsed before their enclosing function declarations have been created. This means that any lambda expressions within those default arguments will have as their DeclContext the context enclosing the function declaration, which may be non-dependent even when the function declaration itself is dependent. This flag indicates when we know that the lambda is dependent despite that.
Declared at: clang/include/clang/AST/DeclCXX.h:1797
¶bool isDerivedFrom(
const clang::CXXRecordDecl* Base) const
bool isDerivedFrom(
const clang::CXXRecordDecl* Base) const
Description
Determine whether this class is derived from the class \p Base. This routine only determines whether this class is derived from \p Base, but does not account for factors that may make a Derived -> Base class ill-formed, such as private/protected inheritance or multiple, ambiguous base class subobjects.
Declared at: clang/include/clang/AST/DeclCXX.h:1536
Parameters
- const clang::CXXRecordDecl* Base
- the base class we are searching for.
Returns
true if this class is derived from Base, false otherwise.
¶bool isDerivedFrom(
const clang::CXXRecordDecl* Base,
clang::CXXBasePaths& Paths) const
bool isDerivedFrom(
const clang::CXXRecordDecl* Base,
clang::CXXBasePaths& Paths) const
Description
Determine whether this class is derived from the type \p Base. This routine only determines whether this class is derived from \p Base, but does not account for factors that may make a Derived -> Base class ill-formed, such as private/protected inheritance or multiple, ambiguous base class subobjects.
Declared at: clang/include/clang/AST/DeclCXX.h:1554
Parameters
- const clang::CXXRecordDecl* Base
- the base class we are searching for.
- clang::CXXBasePaths& Paths
- will contain the paths taken from the current class to the given \p Base class.
Returns
true if this class is derived from \p Base, false otherwise.
¶bool isDynamicClass() const
bool isDynamicClass() const
Declared at: clang/include/clang/AST/DeclCXX.h:562
¶bool isEffectivelyFinal() const
bool isEffectivelyFinal() const
Description
Determine whether it's impossible for a class to be derived from this class. This is best-effort, and may conservatively return false.
Declared at: clang/include/clang/AST/DeclCXX.h:1721
¶bool isEmpty() const
bool isEmpty() const
Description
Determine whether this is an empty class in the sense of (C++11 [meta.unary.prop]). The CXXRecordDecl is a class type, but not a union type, with no non-static data members other than bit-fields of length 0, no virtual member functions, no virtual base classes, and no base class B for which is_empty <B >::value is false.
Declared at: clang/include/clang/AST/DeclCXX.h:1148
¶bool isGenericLambda() const
bool isGenericLambda() const
Description
Determine whether this class describes a generic lambda function object (i.e. function call operator is a template).
Declared at: clang/include/clang/AST/DeclCXX.h:1008
¶bool isInterfaceLike() const
bool isInterfaceLike() const
Declared at: clang/include/clang/AST/DeclCXX.h:1817
¶bool isLambda() const
bool isLambda() const
Description
Determine whether this class describes a lambda function object.
Declared at: clang/include/clang/AST/DeclCXX.h:999
¶bool isLiteral() const
bool isLiteral() const
Description
Determine whether this class is a literal type. C++11 [basic.types]p10: A class type that has all the following properties: - it has a trivial destructor - every constructor call and full-expression in the brace-or-equal-intializers for non-static data members (if any) is a constant expression. - it is an aggregate type or has at least one constexpr constructor or constructor template that is not a copy or move constructor, and - all of its non-static data members and base classes are of literal types We resolve DR1361 by ignoring the second bullet. We resolve DR1452 by treating types with trivial default constructors as literal types. Only in C++17 and beyond, are lambdas literal types.
Declared at: clang/include/clang/AST/DeclCXX.h:1409
¶clang::FunctionDecl* isLocalClass()
clang::FunctionDecl* isLocalClass()
Declared at: clang/include/clang/AST/DeclCXX.h:1517
¶const clang::FunctionDecl* isLocalClass() const
const clang::FunctionDecl* isLocalClass() const
Description
If the class is a local class [class.local], returns the enclosing function declaration.
Declared at: clang/include/clang/AST/DeclCXX.h:1510
¶bool isNeverDependentLambda() const
bool isNeverDependentLambda() const
Declared at: clang/include/clang/AST/DeclCXX.h:1801
¶bool isPOD() const
bool isPOD() const
Description
Whether this class is a POD-type (C++ [class]p4) For purposes of this function a class is POD if it is an aggregate that has no non-static non-POD data members, no reference data members, no user-defined copy assignment operator and no user-defined destructor. Note that this is the C++ TR1 definition of POD.
Declared at: clang/include/clang/AST/DeclCXX.h:1133
¶bool isParsingBaseSpecifiers() const
bool isParsingBaseSpecifiers() const
Declared at: clang/include/clang/AST/DeclCXX.h:580
¶bool isPolymorphic() const
bool isPolymorphic() const
Description
Whether this class is polymorphic (C++ [class.virtual]), which means that the class contains or inherits a virtual function.
Declared at: clang/include/clang/AST/DeclCXX.h:1169
¶bool isProvablyNotDerivedFrom(
const clang::CXXRecordDecl* Base) const
bool isProvablyNotDerivedFrom(
const clang::CXXRecordDecl* Base) const
Description
Determine whether this class is provably not derived from the type \p Base.
Declared at: clang/include/clang/AST/DeclCXX.h:1573
Parameters
- const clang::CXXRecordDecl* Base
¶bool isStandardLayout() const
bool isStandardLayout() const
Description
Determine whether this class is standard-layout per C++ [class]p7.
Declared at: clang/include/clang/AST/DeclCXX.h:1180
¶bool isStructural() const
bool isStructural() const
Description
Determine whether this is a structural type.
Declared at: clang/include/clang/AST/DeclCXX.h:1421
¶bool isTrivial() const
bool isTrivial() const
Description
Determine whether this class is considered trivial. C++11 [class]p6: "A trivial class is a class that has a trivial default constructor and is trivially copyable."
Declared at: clang/include/clang/AST/DeclCXX.h:1388
¶bool isTriviallyCopyable() const
bool isTriviallyCopyable() const
Description
Determine whether this class is considered trivially copyable per (C++11 [class]p6).
Declared at: clang/include/clang/AST/DeclCXX.h:1381
¶bool isVirtuallyDerivedFrom(
const clang::CXXRecordDecl* Base) const
bool isVirtuallyDerivedFrom(
const clang::CXXRecordDecl* Base) const
Description
Determine whether this class is virtually derived from the class \p Base. This routine only determines whether this class is virtually derived from \p Base, but does not account for factors that may make a Derived -> Base class ill-formed, such as private/protected inheritance or multiple, ambiguous base class subobjects.
Declared at: clang/include/clang/AST/DeclCXX.h:1569
Parameters
- const clang::CXXRecordDecl* Base
- the base class we are searching for.
Returns
true if this class is virtually derived from Base, false otherwise.
¶bool lambdaIsDefaultConstructibleAndAssignable()
const
bool lambdaIsDefaultConstructibleAndAssignable()
const
Description
Determine whether this lambda should have an implicit default constructor and copy and move assignment operators.
Declared at: clang/include/clang/AST/DeclCXX.h:1012
¶std::vector<const NamedDecl*> lookupDependentName(
clang::DeclarationName Name,
llvm::function_ref<bool(const NamedDecl*)>
Filter)
std::vector<const NamedDecl*> lookupDependentName(
clang::DeclarationName Name,
llvm::function_ref<bool(const NamedDecl*)>
Filter)
Description
Performs an imprecise lookup of a dependent name in this class. This function does not follow strict semantic rules and should be used only when lookup rules can be relaxed, e.g. indexing.
Declared at: clang/include/clang/AST/DeclCXX.h:1675
Parameters
- clang::DeclarationName Name
- llvm::function_ref<bool(const NamedDecl*)> Filter
¶bool lookupInBases(
clang::CXXRecordDecl::BaseMatchesCallback
BaseMatches,
clang::CXXBasePaths& Paths,
bool LookupInDependent = false) const
bool lookupInBases(
clang::CXXRecordDecl::BaseMatchesCallback
BaseMatches,
clang::CXXBasePaths& Paths,
bool LookupInDependent = false) const
Description
Look for entities within the base classes of this C++ class, transitively searching all base class subobjects. This routine uses the callback function \p BaseMatches to find base classes meeting some search criteria, walking all base class subobjects and populating the given \p Paths structure with the paths through the inheritance hierarchy that resulted in a match. On a successful search, the \p Paths structure can be queried to retrieve the matching paths and to determine if there were any ambiguities.
Declared at: clang/include/clang/AST/DeclCXX.h:1628
Parameters
- clang::CXXRecordDecl::BaseMatchesCallback BaseMatches
- callback function used to determine whether a given base matches the user-defined search criteria.
- clang::CXXBasePaths& Paths
- used to record the paths from this class to its base class subobjects that match the search criteria.
- bool LookupInDependent = false
- can be set to true to extend the search to dependent base classes.
Returns
true if there exists any path from this class to a base class subobject that matches the search criteria.
¶void markAbstract()
void markAbstract()
Declared at: clang/include/clang/AST/DeclCXX.h:1823
¶void markedVirtualFunctionPure()
void markedVirtualFunctionPure()
Declared at: clang/include/clang/AST/DeclCXX.h:477
¶bool mayBeAbstract() const
bool mayBeAbstract() const
Description
Determine whether this class may end up being abstract, even though it is not yet known to be abstract.
Declared at: clang/include/clang/AST/DeclCXX.h:1717
Returns
true if this class is not known to be abstract but has any base classes that are abstract. In this case, \c completeDefinition() will need to compute final overriders to determine whether the class is actually abstract.
¶bool mayBeDynamicClass() const
bool mayBeDynamicClass() const
Declared at: clang/include/clang/AST/DeclCXX.h:568
Returns
true if class is dynamic or might be dynamic because the definition is incomplete of dependent.
¶bool mayBeNonDynamicClass() const
bool mayBeNonDynamicClass() const
Declared at: clang/include/clang/AST/DeclCXX.h:574
Returns
true if class is non dynamic or might be non dynamic because the definition is incomplete of dependent.
¶clang::CXXRecordDecl::method_iterator
method_begin() const
clang::CXXRecordDecl::method_iterator
method_begin() const
Description
Method begin iterator. Iterates in the order the methods were declared.
Declared at: clang/include/clang/AST/DeclCXX.h:644
¶clang::CXXRecordDecl::method_iterator method_end()
const
clang::CXXRecordDecl::method_iterator method_end()
const
Description
Method past-the-end iterator.
Declared at: clang/include/clang/AST/DeclCXX.h:649
¶clang::CXXRecordDecl::method_range methods() const
clang::CXXRecordDecl::method_range methods() const
Declared at: clang/include/clang/AST/DeclCXX.h:638
¶bool needsImplicitCopyAssignment() const
bool needsImplicitCopyAssignment() const
Description
Determine whether this class needs an implicit copy assignment operator to be lazily declared.
Declared at: clang/include/clang/AST/DeclCXX.h:906
¶bool needsImplicitCopyConstructor() const
bool needsImplicitCopyConstructor() const
Description
Determine whether this class needs an implicit copy constructor to be lazily declared.
Declared at: clang/include/clang/AST/DeclCXX.h:787
¶bool needsImplicitDefaultConstructor() const
bool needsImplicitDefaultConstructor() const
Description
Determine if we need to declare a default constructor for this class. This value is used for lazy creation of default constructors.
Declared at: clang/include/clang/AST/DeclCXX.h:754
¶bool needsImplicitDestructor() const
bool needsImplicitDestructor() const
Description
Determine whether this class needs an implicit destructor to be lazily declared.
Declared at: clang/include/clang/AST/DeclCXX.h:988
¶bool needsImplicitMoveAssignment() const
bool needsImplicitMoveAssignment() const
Description
Determine whether this class should get an implicit move assignment operator or if any existing special member function inhibits this.
Declared at: clang/include/clang/AST/DeclCXX.h:964
¶bool needsImplicitMoveConstructor() const
bool needsImplicitMoveConstructor() const
Description
Determine whether this class should get an implicit move constructor or if any existing special member function inhibits this.
Declared at: clang/include/clang/AST/DeclCXX.h:873
¶bool needsOverloadResolutionForCopyAssignment()
const
bool needsOverloadResolutionForCopyAssignment()
const
Description
Determine whether we need to eagerly declare a defaulted copy assignment operator for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:912
¶bool needsOverloadResolutionForCopyConstructor()
const
bool needsOverloadResolutionForCopyConstructor()
const
Description
Determine whether we need to eagerly declare a defaulted copy constructor for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:793
¶bool needsOverloadResolutionForDestructor() const
bool needsOverloadResolutionForDestructor() const
Description
Determine whether we need to eagerly declare a destructor for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:994
¶bool needsOverloadResolutionForMoveAssignment()
const
bool needsOverloadResolutionForMoveAssignment()
const
Description
Determine whether we need to eagerly declare a move assignment operator for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:975
¶bool needsOverloadResolutionForMoveConstructor()
const
bool needsOverloadResolutionForMoveConstructor()
const
Description
Determine whether we need to eagerly declare a defaulted move constructor for this class.
Declared at: clang/include/clang/AST/DeclCXX.h:883
¶bool nullFieldOffsetIsZero() const
bool nullFieldOffsetIsZero() const
Description
In the Microsoft C++ ABI, use zero for the field offset of a null data member pointer if we can guarantee that zero is not a valid field offset, or if the member pointer has multiple fields. Polymorphic classes have a vfptr at offset zero, so we can use zero for null. If there are multiple fields, we can use zero even if it is a valid field offset because null-ness testing will check the other fields.
Declared at: clang/include/clang/AST/DeclCXX.h:1780
¶void pushFriendDecl(clang::FriendDecl* FD)
void pushFriendDecl(clang::FriendDecl* FD)
Declared at: clang/include/clang/AST/DeclCXX.h:676
Parameters
¶void removeConversion(const clang::NamedDecl* Old)
void removeConversion(const clang::NamedDecl* Old)
Description
Removes a conversion function from this class. The conversion function must currently be a member of this class. Furthermore, this class must currently be in the process of being defined.
Declared at: clang/include/clang/AST/DeclCXX.h:1094
Parameters
- const clang::NamedDecl* Old
¶void setBases(
const clang::CXXBaseSpecifier* const* Bases,
unsigned int NumBases)
void setBases(
const clang::CXXBaseSpecifier* const* Bases,
unsigned int NumBases)
Description
Sets the base classes of this struct or class.
Declared at: clang/include/clang/AST/DeclCXX.h:587
Parameters
- const clang::CXXBaseSpecifier* const* Bases
- unsigned int NumBases
¶void setCaptures(
clang::ASTContext& Context,
ArrayRef<clang::LambdaCapture> Captures)
void setCaptures(
clang::ASTContext& Context,
ArrayRef<clang::LambdaCapture> Captures)
Description
Set the captures for this lambda closure type.
Declared at: clang/include/clang/AST/DeclCXX.h:1046
Parameters
- clang::ASTContext& Context
- ArrayRef<clang::LambdaCapture> Captures
¶void setDescribedClassTemplate(
clang::ClassTemplateDecl* Template)
void setDescribedClassTemplate(
clang::ClassTemplateDecl* Template)
Declared at: clang/include/clang/AST/DeclCXX.h:1482
Parameters
- clang::ClassTemplateDecl* Template
¶void setDeviceLambdaManglingNumber(
unsigned int Num) const
void setDeviceLambdaManglingNumber(
unsigned int Num) const
Description
Set the device side mangling number.
Declared at: clang/include/clang/AST/DeclCXX.h:1763
Parameters
- unsigned int Num
¶void setHasTrivialSpecialMemberForCall()
void setHasTrivialSpecialMemberForCall()
Declared at: clang/include/clang/AST/DeclCXX.h:1339
¶void setImplicitCopyAssignmentIsDeleted()
void setImplicitCopyAssignmentIsDeleted()
Description
Set that we attempted to declare an implicit copy assignment operator, but overload resolution failed so we deleted it.
Declared at: clang/include/clang/AST/DeclCXX.h:897
¶void setImplicitCopyConstructorIsDeleted()
void setImplicitCopyConstructorIsDeleted()
Description
Set that we attempted to declare an implicit copy constructor, but overload resolution failed so we deleted it.
Declared at: clang/include/clang/AST/DeclCXX.h:846
¶void setImplicitDestructorIsDeleted()
void setImplicitDestructorIsDeleted()
Description
Set that we attempted to declare an implicit destructor, but overload resolution failed so we deleted it.
Declared at: clang/include/clang/AST/DeclCXX.h:864
¶void setImplicitMoveAssignmentIsDeleted()
void setImplicitMoveAssignmentIsDeleted()
Description
Set that we attempted to declare an implicit move assignment operator, but overload resolution failed so we deleted it.
Declared at: clang/include/clang/AST/DeclCXX.h:954
¶void setImplicitMoveConstructorIsDeleted()
void setImplicitMoveConstructorIsDeleted()
Description
Set that we attempted to declare an implicit move constructor, but overload resolution failed so we deleted it.
Declared at: clang/include/clang/AST/DeclCXX.h:855
¶void setInitMethod(bool Val)
void setInitMethod(bool Val)
Declared at: clang/include/clang/AST/DeclCXX.h:1150
Parameters
- bool Val
¶void setInstantiationOfMemberClass(
clang::CXXRecordDecl* RD,
clang::TemplateSpecializationKind TSK)
void setInstantiationOfMemberClass(
clang::CXXRecordDecl* RD,
clang::TemplateSpecializationKind TSK)
Description
Specify that this record is an instantiation of the member class \p RD.
Declared at: clang/include/clang/AST/DeclCXX.h:1466
Parameters
- clang::CXXRecordDecl* RD
- clang::TemplateSpecializationKind TSK
¶void setIsParsingBaseSpecifiers()
void setIsParsingBaseSpecifiers()
Declared at: clang/include/clang/AST/DeclCXX.h:578
¶void setLambdaMangling(
unsigned int ManglingNumber,
clang::Decl* ContextDecl,
bool HasKnownInternalLinkage = false)
void setLambdaMangling(
unsigned int ManglingNumber,
clang::Decl* ContextDecl,
bool HasKnownInternalLinkage = false)
Description
Set the mangling number and context declaration for a lambda class.
Declared at: clang/include/clang/AST/DeclCXX.h:1754
Parameters
- unsigned int ManglingNumber
- clang::Decl* ContextDecl
- bool HasKnownInternalLinkage = false
¶void setTemplateSpecializationKind(
clang::TemplateSpecializationKind TSK)
void setTemplateSpecializationKind(
clang::TemplateSpecializationKind TSK)
Description
Set the kind of specialization or template instantiation this is.
Declared at: clang/include/clang/AST/DeclCXX.h:1490
Parameters
- clang::TemplateSpecializationKind TSK
¶void setTrivialForCallFlags(
clang::CXXMethodDecl* MD)
void setTrivialForCallFlags(
clang::CXXMethodDecl* MD)
Declared at: clang/include/clang/AST/DeclCXX.h:1696
Parameters
¶clang::CXXRecordDecl::base_class_const_range
vbases() const
clang::CXXRecordDecl::base_class_const_range
vbases() const
Declared at: clang/include/clang/AST/DeclCXX.h:616
¶clang::CXXRecordDecl::base_class_range vbases()
clang::CXXRecordDecl::base_class_range vbases()
Declared at: clang/include/clang/AST/DeclCXX.h:613
¶clang::CXXRecordDecl::base_class_const_iterator
vbases_begin() const
clang::CXXRecordDecl::base_class_const_iterator
vbases_begin() const
Declared at: clang/include/clang/AST/DeclCXX.h:621
¶clang::CXXRecordDecl::base_class_iterator
vbases_begin()
clang::CXXRecordDecl::base_class_iterator
vbases_begin()
Declared at: clang/include/clang/AST/DeclCXX.h:620
¶clang::CXXRecordDecl::base_class_const_iterator
vbases_end() const
clang::CXXRecordDecl::base_class_const_iterator
vbases_end() const
Declared at: clang/include/clang/AST/DeclCXX.h:623
¶clang::CXXRecordDecl::base_class_iterator
vbases_end()
clang::CXXRecordDecl::base_class_iterator
vbases_end()
Declared at: clang/include/clang/AST/DeclCXX.h:622
¶void viewInheritance(
clang::ASTContext& Context) const
void viewInheritance(
clang::ASTContext& Context) const
Description
Renders and displays an inheritance diagram for this C++ class and all of its base classes (transitively) using GraphViz.
Declared at: clang/include/clang/AST/DeclCXX.h:1681
Parameters
- clang::ASTContext& Context