class CXXInheritedCtorInitExpr

Declaration

class CXXInheritedCtorInitExpr : public Expr { /* full declaration omitted */ };

Description

Represents a call to an inherited base class constructor from an inheriting constructor. This call implicitly forwards the arguments from the enclosing context (an inheriting constructor) to the specified inherited base class constructor.

Declared at: clang/include/clang/AST/ExprCXX.h:1651

Inherits from: Expr

Member Variables

private clang::CXXConstructorDecl* Constructor = nullptr
private clang::SourceLocation Loc
The location of the using declaration.
private unsigned int ConstructsVirtualBase
Whether this is the construction of a virtual base.
private unsigned int InheritedFromVirtualBase
Whether the constructor is inherited from a virtual base class of the class that we construct.

Inherited from Stmt:

protected

Method Overview

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

Methods

CXXInheritedCtorInitExpr(
    clang::SourceLocation Loc,
    clang::QualType T,
    clang::CXXConstructorDecl* Ctor,
    bool ConstructsVirtualBase,
    bool InheritedFromVirtualBase)

Description

Construct a C++ inheriting construction expression.

Declared at: clang/include/clang/AST/ExprCXX.h:1669

Parameters

clang::SourceLocation Loc
clang::QualType T
clang::CXXConstructorDecl* Ctor
bool ConstructsVirtualBase
bool InheritedFromVirtualBase

CXXInheritedCtorInitExpr(
    clang::Stmt::EmptyShell Empty)

Description

Construct an empty C++ inheriting construction expression.

Declared at: clang/include/clang/AST/ExprCXX.h:1681

Parameters

clang::Stmt::EmptyShell Empty

clang::Stmt::child_range children()

Declared at: clang/include/clang/AST/ExprCXX.h:1710

clang::Stmt::const_child_range children() const

Declared at: clang/include/clang/AST/ExprCXX.h:1714

static bool classof(const clang::Stmt* T)

Declared at: clang/include/clang/AST/ExprCXX.h:1706

Parameters

const clang::Stmt* T

bool constructsVBase() const

Description

Determine whether this constructor is actually constructing a base class (rather than a complete object).

Declared at: clang/include/clang/AST/ExprCXX.h:1690

clang::SourceLocation getBeginLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:1703

CXXConstructExpr::ConstructionKind
getConstructionKind() const

Declared at: clang/include/clang/AST/ExprCXX.h:1691

clang::CXXConstructorDecl* getConstructor() const

Description

Get the constructor that this expression will call.

Declared at: clang/include/clang/AST/ExprCXX.h:1686

clang::SourceLocation getEndLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:1704

clang::SourceLocation getLocation() const

Declared at: clang/include/clang/AST/ExprCXX.h:1702

bool inheritedFromVBase() const

Description

Determine whether the inherited constructor is inherited from a virtual base of the object we construct. If so, we are not responsible for calling the inherited constructor (the complete object constructor does that), and so we don't need to pass any arguments.

Declared at: clang/include/clang/AST/ExprCXX.h:1700