clang: clang::LambdaCapture Class Reference (original) (raw)
Describes the capture of a variable or of this
, or of a C++1y init-capture. More...
#include "[clang/AST/LambdaCapture.h](LambdaCapture%5F8h%5Fsource.html)"
Public Member Functions | |
---|---|
LambdaCapture (SourceLocation Loc, bool Implicit, LambdaCaptureKind Kind, ValueDecl *Var=nullptr, SourceLocation EllipsisLoc=SourceLocation()) | |
Create a new capture of a variable or of this. | |
LambdaCaptureKind | getCaptureKind () const |
Determine the kind of capture. | |
bool | capturesThis () const |
Determine whether this capture handles the C++ this pointer. | |
bool | capturesVariable () const |
Determine whether this capture handles a variable. | |
bool | capturesVLAType () const |
Determine whether this captures a variable length array bound expression. | |
ValueDecl * | getCapturedVar () const |
Retrieve the declaration of the local variable being captured. | |
bool | isImplicit () const |
Determine whether this was an implicit capture (not written between the square brackets introducing the lambda). | |
bool | isExplicit () const |
Determine whether this was an explicit capture (written between the square brackets introducing the lambda). | |
SourceLocation | getLocation () const |
Retrieve the source location of the capture. | |
bool | isPackExpansion () const |
Determine whether this capture is a pack expansion, which captures a function parameter pack. | |
SourceLocation | getEllipsisLoc () const |
Retrieve the location of the ellipsis for a capture that is a pack expansion. | |
Describes the capture of a variable or of this
, or of a C++1y init-capture.
Definition at line 25 of file LambdaCapture.h.
Create a new capture of a variable or of this
.
Parameters
Loc | The source location associated with this capture. |
---|---|
Kind | The kind of capture (this, byref, bycopy), which must not be init-capture. |
Implicit | Whether the capture was implicit or explicit. |
Var | The local variable being captured, or null if capturing this. |
EllipsisLoc | The location of the ellipsis (...) for a capture that is a pack expansion, or an invalid source location to indicate that this is not a pack expansion. |
Definition at line 1215 of file ExprCXX.cpp.
References clang::Implicit, clang::LCK_ByCopy, clang::LCK_ByRef, clang::LCK_StarThis, clang::LCK_This, and clang::LCK_VLAType.
◆ capturesThis()
bool clang::LambdaCapture::capturesThis ( ) const | inline |
---|
◆ capturesVariable()
bool clang::LambdaCapture::capturesVariable ( ) const | inline |
---|
◆ capturesVLAType()
bool clang::LambdaCapture::capturesVLAType ( ) const | inline |
---|
◆ getCapturedVar()
ValueDecl * clang::LambdaCapture::getCapturedVar ( ) const | inline |
---|
◆ getCaptureKind()
◆ getEllipsisLoc()
◆ getLocation()
Retrieve the source location of the capture.
For an explicit capture, this returns the location of the explicit capture in the source. For an implicit capture, this returns the location at which the variable or this
was first used.
Definition at line 125 of file LambdaCapture.h.
References Loc.
Referenced by clang::ASTNodeImporter::import().
◆ isExplicit()
bool clang::LambdaCapture::isExplicit ( ) const | inline |
---|
Determine whether this was an explicit capture (written between the square brackets introducing the lambda).
Definition at line 117 of file LambdaCapture.h.
References isImplicit().
◆ isImplicit()
bool clang::LambdaCapture::isImplicit ( ) const | inline |
---|
◆ isPackExpansion()
bool clang::LambdaCapture::isPackExpansion ( ) const | inline |
---|
◆ ASTStmtReader
◆ ASTStmtWriter
The documentation for this class was generated from the following files:
- include/clang/AST/LambdaCapture.h
- lib/AST/ExprCXX.cpp