clang  9.0.0svn
Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::CXX17ElidedCopyConstructorInitializerConstructionContext Class Reference

Represents construction into a field or a base class within a bigger object via a constructor initializer, with a single constructor, eg. More...

#include "clang/Analysis/ConstructionContext.h"

Inheritance diagram for clang::CXX17ElidedCopyConstructorInitializerConstructionContext:
Inheritance graph
[legend]
Collaboration diagram for clang::CXX17ElidedCopyConstructorInitializerConstructionContext:
Collaboration graph
[legend]

Public Member Functions

const CXXBindTemporaryExprgetCXXBindTemporaryExpr () const
 
- Public Member Functions inherited from clang::ConstructorInitializerConstructionContext
const CXXCtorInitializergetCXXCtorInitializer () 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::ConstructorInitializerConstructionContext
static bool classof (const ConstructionContext *CC)
 
- Static Public Member Functions inherited from clang::ConstructionContext
static const ConstructionContextcreateFromLayers (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::ConstructorInitializerConstructionContext
 ConstructorInitializerConstructionContext (ConstructionContext::Kind K, const CXXCtorInitializer *I)
 
- Protected Member Functions inherited from clang::ConstructionContext
 ConstructionContext (Kind K)
 
- Protected Attributes inherited from clang::ConstructionContext
Kind K
 

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

Definition at line 413 of file ConstructionContext.h.

Member Function Documentation

◆ classof()

static bool clang::CXX17ElidedCopyConstructorInitializerConstructionContext::classof ( const ConstructionContext CC)
inlinestatic

Definition at line 430 of file ConstructionContext.h.

References clang::ConstructionContext::getKind().

◆ getCXXBindTemporaryExpr()

const CXXBindTemporaryExpr* clang::CXX17ElidedCopyConstructorInitializerConstructionContext::getCXXBindTemporaryExpr ( ) const
inline

Definition at line 428 of file ConstructionContext.h.

Friends And Related Function Documentation

◆ ConstructionContext

friend class ConstructionContext
friend

Definition at line 417 of file ConstructionContext.h.


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