class CXX17ElidedCopyConstructorInitializerConstructionContext

Declaration

class CXX17ElidedCopyConstructorInitializerConstructionContext
    : public ConstructorInitializerConstructionContext { /* full declaration omitted */ };

Description

Represents construction into a field or a base class within a bigger object via a constructor initializer, with a single constructor, eg. T(): field(Field(123)) { ... }. Such construction context may only appear in C++17 because previously it was split into a temporary object constructor and an elidable simple constructor-initializer copy-constructor and we were producing separate construction contexts for these constructors. In C++17 we have a single construction context that combines both. Note that if the object has trivial destructor, then this code is indistinguishable from a simple constructor-initializer constructor on the AST level; in this case we provide a simple constructor-initializer construction context.

Declared at: clang/include/clang/Analysis/ConstructionContext.h:439

Inherits from: ConstructorInitializerConstructionContext

Member Variables

private const clang::CXXBindTemporaryExpr* BTE

Inherited from ConstructionContext:

protected K

Method Overview

Inherited from ConstructorInitializerConstructionContext:

Inherited from ConstructionContext:

Methods

CXX17ElidedCopyConstructorInitializerConstructionContext(
    const clang::CXXCtorInitializer* I,
    const clang::CXXBindTemporaryExpr* BTE)

Declared at: clang/include/clang/Analysis/ConstructionContext.h:445

Parameters

const clang::CXXCtorInitializer* I
const clang::CXXBindTemporaryExpr* BTE

static bool classof(
    const clang::ConstructionContext* CC)

Declared at: clang/include/clang/Analysis/ConstructionContext.h:456

Parameters

const clang::ConstructionContext* CC

const clang::CXXBindTemporaryExpr*
getCXXBindTemporaryExpr() const

Declared at: clang/include/clang/Analysis/ConstructionContext.h:454