class CXX17ElidedCopyVariableConstructionContext

Declaration

class CXX17ElidedCopyVariableConstructionContext
    : public VariableConstructionContext { /* full declaration omitted */ };

Description

Represents construction into a simple variable with an initializer syntax, with a single constructor, eg. T var = makeT();. Such construction context may only appear in C++17 because previously it was split into a temporary object constructor and an elidable simple variable 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 variable constructor on the AST level; in this case we provide a simple variable construction context.

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

Inherits from: VariableConstructionContext

Member Variables

private const clang::CXXBindTemporaryExpr* BTE

Inherited from ConstructionContext:

protected K

Method Overview

Inherited from VariableConstructionContext:

Inherited from ConstructionContext:

Methods

CXX17ElidedCopyVariableConstructionContext(
    const clang::DeclStmt* DS,
    const clang::CXXBindTemporaryExpr* BTE)

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

Parameters

const clang::DeclStmt* DS
const clang::CXXBindTemporaryExpr* BTE

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

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

Parameters

const clang::ConstructionContext* CC

const clang::CXXBindTemporaryExpr*
getCXXBindTemporaryExpr() const

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