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

Inherited from RecordDecl:

Inherited from TagDecl:

Inherited from DeclContext:

Inherited from TypeDecl:

Inherited from NamedDecl:

Inherited from Decl:

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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

clang::CXXDestructorDecl* DD

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

Declared at: clang/include/clang/AST/DeclCXX.h:599

clang::CXXRecordDecl::base_class_range bases()

Declared at: clang/include/clang/AST/DeclCXX.h:596

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

Declared at: clang/include/clang/AST/DeclCXX.h:604

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

Declared at: clang/include/clang/AST/DeclCXX.h:606

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

Declared at: clang/include/clang/AST/DeclCXX.h:1079

clang::CXXRecordDecl::capture_const_range
captures() const

Declared at: clang/include/clang/AST/DeclCXX.h:1066

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

Declared at: clang/include/clang/AST/DeclCXX.h:1074

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)

Declared at: clang/include/clang/AST/DeclCXX.h:1820

Parameters

clang::Decl::Kind K

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)

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

Declared at: clang/include/clang/AST/DeclCXX.h:1083

clang::CXXRecordDecl::conversion_iterator
conversion_end() const

Declared at: clang/include/clang/AST/DeclCXX.h:1087

clang::CXXRecordDecl::ctor_iterator ctor_begin()
    const

Declared at: clang/include/clang/AST/DeclCXX.h:660

clang::CXXRecordDecl::ctor_iterator ctor_end()
    const

Declared at: clang/include/clang/AST/DeclCXX.h:664

clang::CXXRecordDecl::ctor_range ctors() const

Declared at: clang/include/clang/AST/DeclCXX.h:658

struct DefinitionData& data() const

Declared at: clang/include/clang/AST/DeclCXX.h:440

struct DefinitionData* dataPtr() const

Declared at: clang/include/clang/AST/DeclCXX.h:434

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

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

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

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

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)

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

clang::CXXMethodDecl* MD

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

Declared at: clang/include/clang/AST/DeclCXX.h:674

clang::CXXRecordDecl::friend_iterator friend_end()
    const

Declared at: clang/include/clang/AST/DeclCXX.h:675

clang::CXXRecordDecl::friend_range friends() const

Declared at: clang/include/clang/AST/DeclCXX.h:673

const clang::CXXRecordDecl* getCanonicalDecl()
    const

Declared at: clang/include/clang/AST/DeclCXX.h:505

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:542

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

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

Description

Returns the destructor decl for this class.

Declared at: clang/include/clang/AST/DeclCXX.h:1502

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

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

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

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

Description

Get the indirect primary bases for this class.

Declared at: clang/include/clang/AST/DeclCXX.h:1660

Parameters

clang::CXXIndirectPrimaryBaseSet& Bases

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1040

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

Declared at: clang/include/clang/AST/DeclCXX.h:446

unsigned int getLambdaDependencyKind() const

Declared at: clang/include/clang/AST/DeclCXX.h:1805

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1030

Parameters

clang::CallingConv CC

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

Declared at: clang/include/clang/AST/DeclCXX.h:1811

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

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

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()

Declared at: clang/include/clang/AST/DeclCXX.h:518

const clang::CXXRecordDecl* getMostRecentDecl()
    const

Declared at: clang/include/clang/AST/DeclCXX.h:523

const clang::CXXRecordDecl*
getMostRecentNonInjectedDecl() const

Declared at: clang/include/clang/AST/DeclCXX.h:538

clang::CXXRecordDecl*
getMostRecentNonInjectedDecl()

Declared at: clang/include/clang/AST/DeclCXX.h:527

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

Description

Retrieves the number of virtual base classes of this class.

Declared at: clang/include/clang/AST/DeclCXX.h:611

unsigned int getODRHash() const

Declared at: clang/include/clang/AST/DeclCXX.h:584

const clang::CXXRecordDecl* getPreviousDecl()
    const

Declared at: clang/include/clang/AST/DeclCXX.h:514

clang::CXXRecordDecl* getPreviousDecl()

Declared at: clang/include/clang/AST/DeclCXX.h:509

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()

Declared at: clang/include/clang/AST/DeclCXX.h:1496

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

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

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

Description

Determine whether this class has a constexpr default constructor.

Declared at: clang/include/clang/AST/DeclCXX.h:1225

bool hasConstexprDestructor() const

Description

Determine whether this class has a constexpr destructor.

Declared at: clang/include/clang/AST/DeclCXX.h:1317

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

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

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

Description

Determine whether this class has any default constructors.

Declared at: clang/include/clang/AST/DeclCXX.h:745

bool hasDefinition() const

Declared at: clang/include/clang/AST/DeclCXX.h:549

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

Description

Determines whether this record has any friends.

Declared at: clang/include/clang/AST/DeclCXX.h:679

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

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1151

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

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

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

clang::DeclarationName N

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

Description

Determine whether this class has a move constructor.

Declared at: clang/include/clang/AST/DeclCXX.h:839

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

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

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1248

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1335

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1274

bool hasPrivateFields() const

Declared at: clang/include/clang/AST/DeclCXX.h:1153

bool hasProtectedFields() const

Declared at: clang/include/clang/AST/DeclCXX.h:1157

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

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

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

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

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)

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

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1237

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1325

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1261

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

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

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

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

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

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

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

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

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

Description

Determine whether this class has any variant members.

Declared at: clang/include/clang/AST/DeclCXX.h:1191

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

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

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

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

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

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

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

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

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

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:562

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

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

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

Declared at: clang/include/clang/AST/DeclCXX.h:1817

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

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()

Declared at: clang/include/clang/AST/DeclCXX.h:1517

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

Declared at: clang/include/clang/AST/DeclCXX.h:1801

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

Declared at: clang/include/clang/AST/DeclCXX.h:580

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

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

Description

Determine whether this class is standard-layout per C++ [class]p7.

Declared at: clang/include/clang/AST/DeclCXX.h:1180

bool isStructural() const

Description

Determine whether this is a structural type.

Declared at: clang/include/clang/AST/DeclCXX.h:1421

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

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

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

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)

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

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()

Declared at: clang/include/clang/AST/DeclCXX.h:1823

void markedVirtualFunctionPure()

Declared at: clang/include/clang/AST/DeclCXX.h:477

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

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

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

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

Description

Method past-the-end iterator.

Declared at: clang/include/clang/AST/DeclCXX.h:649

clang::CXXRecordDecl::method_range methods() const

Declared at: clang/include/clang/AST/DeclCXX.h:638

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

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

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

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

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

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

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

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

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

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

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

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)

Declared at: clang/include/clang/AST/DeclCXX.h:676

Parameters

clang::FriendDecl* FD

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)

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)

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)

Declared at: clang/include/clang/AST/DeclCXX.h:1482

Parameters

clang::ClassTemplateDecl* Template

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()

Declared at: clang/include/clang/AST/DeclCXX.h:1339

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()

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()

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()

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()

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)

Declared at: clang/include/clang/AST/DeclCXX.h:1150

Parameters

bool Val

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()

Declared at: clang/include/clang/AST/DeclCXX.h:578

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)

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)

Declared at: clang/include/clang/AST/DeclCXX.h:1696

Parameters

clang::CXXMethodDecl* MD

clang::CXXRecordDecl::base_class_const_range
vbases() const

Declared at: clang/include/clang/AST/DeclCXX.h:616

clang::CXXRecordDecl::base_class_range vbases()

Declared at: clang/include/clang/AST/DeclCXX.h:613

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()

Declared at: clang/include/clang/AST/DeclCXX.h:620

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()

Declared at: clang/include/clang/AST/DeclCXX.h:622

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