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:
Method Overview
- private CXX17ElidedCopyConstructorInitializerConstructionContext(const clang::CXXCtorInitializer * I, const clang::CXXBindTemporaryExpr * BTE)
- public static bool classof(const clang::ConstructionContext * CC)
- public const clang::CXXBindTemporaryExpr * getCXXBindTemporaryExpr() const
Inherited from ConstructorInitializerConstructionContext:
Inherited from ConstructionContext:
Methods
¶CXX17ElidedCopyConstructorInitializerConstructionContext(
const clang::CXXCtorInitializer* I,
const clang::CXXBindTemporaryExpr* BTE)
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)
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
const clang::CXXBindTemporaryExpr*
getCXXBindTemporaryExpr() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:454