clang 10.0.0git

Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::CXX17ElidedCopyVariableConstructionContext Class Reference

Represents construction into a simple variable with an initializer syntax, with a single constructor, eg. More...

`#include "clang/Analysis/ConstructionContext.h"`

Inheritance diagram for clang::CXX17ElidedCopyVariableConstructionContext:
[legend]
Collaboration diagram for clang::CXX17ElidedCopyVariableConstructionContext:
[legend]

## Public Member Functions
const CXXBindTemporaryExpr * | getCXXBindTemporaryExpr () const
Public Member Functions inherited from clang::VariableConstructionContext
const DeclStmt * | getDeclStmt () const
Public Member Functions inherited from clang::ConstructionContext
Kind | getKind () const

## Static Public Member Functions
static bool | classof (const ConstructionContext *CC)
Static Public Member Functions inherited from clang::VariableConstructionContext
static bool | classof (const ConstructionContext *CC)
Static Public Member Functions inherited from clang::ConstructionContext
static const ConstructionContext * | createFromLayers (BumpVectorContext &C, const ConstructionContextLayer *TopLayer)
| Consume the construction context layer, together with its parent layers, and wrap it up into a complete construction context. More...

## Friends
class | ConstructionContext

## Additional Inherited Members
Public Types inherited from clang::ConstructionContext
enum | Kind { SimpleVariableKind, CXX17ElidedCopyVariableKind, VARIABLE_BEGIN = SimpleVariableKind, VARIABLE_END = CXX17ElidedCopyVariableKind, SimpleConstructorInitializerKind, CXX17ElidedCopyConstructorInitializerKind, INITIALIZER_BEGIN = SimpleConstructorInitializerKind, INITIALIZER_END = CXX17ElidedCopyConstructorInitializerKind, NewAllocatedObjectKind, SimpleTemporaryObjectKind, ElidedTemporaryObjectKind, TEMPORARY_BEGIN = SimpleTemporaryObjectKind, TEMPORARY_END = ElidedTemporaryObjectKind, SimpleReturnedValueKind, CXX17ElidedCopyReturnedValueKind, RETURNED_VALUE_BEGIN = SimpleReturnedValueKind, RETURNED_VALUE_END = CXX17ElidedCopyReturnedValueKind, ArgumentKind }
Protected Member Functions inherited from clang::VariableConstructionContext
| VariableConstructionContext (ConstructionContext::Kind K, const DeclStmt *DS)
Protected Member Functions inherited from clang::ConstructionContext
| ConstructionContext (Kind K)
Protected Attributes inherited from clang::ConstructionContext
Kind | K

## Detailed 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.

Definition at line 345 of file ConstructionContext.h.

## Member Function Documentation

## ◆ classof()

static bool clang::CXX17ElidedCopyVariableConstructionContext::classof | ( | const ConstructionContext * | CC | ) |
| inline static

Definition at line 360 of file ConstructionContext.h.

References clang::ConstructionContext::getKind().

## ◆ getCXXBindTemporaryExpr()

const CXXBindTemporaryExpr* clang::CXX17ElidedCopyVariableConstructionContext::getCXXBindTemporaryExpr | ( |  | ) | const
| inline

Definition at line 358 of file ConstructionContext.h.

## Friends And Related Function Documentation

## ◆ ConstructionContext

friend class ConstructionContext
| friend

Definition at line 349 of file ConstructionContext.h.

The documentation for this class was generated from the following file:

- include/clang/Analysis/ConstructionContext.h