class BindingDecl

Declaration

class BindingDecl : public ValueDecl { /* full declaration omitted */ };

Description

A binding in a decomposition declaration. For instance, given: int n[3]; auto & [a, b, c] = n; a, b, and c are BindingDecls, whose bindings are the expressions x[0], x[1], and x[2] respectively, where x is the implicit DecompositionDecl of type 'int ( & )[3]'.

Declared at: clang/include/clang/AST/DeclCXX.h:3992

Inherits from: ValueDecl

Member Variables

private clang::ValueDecl* Decomp
The declaration that this binding binds to part of.
private clang::Expr* Binding = nullptr
The binding represented by this declaration. References to this declaration are effectively equivalent to this expression (except that it is only evaluated once at the point of declaration of the binding).

Inherited from Decl:

protected NextInContextAndBits
protected Access
protected FromASTFile
protected IdentifierNamespace
protected CacheValidAndLinkage

Method Overview

  • private BindingDecl(clang::DeclContext * DC, clang::SourceLocation IdLoc, clang::IdentifierInfo * Id)
  • public static clang::BindingDecl * Create(clang::ASTContext & C, clang::DeclContext * DC, clang::SourceLocation IdLoc, clang::IdentifierInfo * Id)
  • public static clang::BindingDecl * CreateDeserialized(clang::ASTContext & C, unsigned int ID)
  • private void anchor()
  • public static bool classof(const clang::Decl * D)
  • public static bool classofKind(clang::Decl::Kind K)
  • public clang::Expr * getBinding() const
  • public clang::ValueDecl * getDecomposedDecl() const
  • public clang::VarDecl * getHoldingVar() const
  • public void setBinding(clang::QualType DeclaredType, clang::Expr * Binding)
  • public void setDecomposedDecl(clang::ValueDecl * Decomposed)

Inherited from ValueDecl:

Inherited from NamedDecl:

Inherited from Decl:

Methods

BindingDecl(clang::DeclContext* DC,
            clang::SourceLocation IdLoc,
            clang::IdentifierInfo* Id)

Declared at: clang/include/clang/AST/DeclCXX.h:4001

Parameters

clang::DeclContext* DC
clang::SourceLocation IdLoc
clang::IdentifierInfo* Id

static clang::BindingDecl* Create(
    clang::ASTContext& C,
    clang::DeclContext* DC,
    clang::SourceLocation IdLoc,
    clang::IdentifierInfo* Id)

Declared at: clang/include/clang/AST/DeclCXX.h:4009

Parameters

clang::ASTContext& C
clang::DeclContext* DC
clang::SourceLocation IdLoc
clang::IdentifierInfo* Id

static clang::BindingDecl* CreateDeserialized(
    clang::ASTContext& C,
    unsigned int ID)

Declared at: clang/include/clang/AST/DeclCXX.h:4011

Parameters

clang::ASTContext& C
unsigned int ID

void anchor()

Declared at: clang/include/clang/AST/DeclCXX.h:4004

static bool classof(const clang::Decl* D)

Declared at: clang/include/clang/AST/DeclCXX.h:4037

Parameters

const clang::Decl* D

static bool classofKind(clang::Decl::Kind K)

Declared at: clang/include/clang/AST/DeclCXX.h:4038

Parameters

clang::Decl::Kind K

clang::Expr* getBinding() const

Description

Get the expression to which this declaration is bound. This may be null in two different cases: while parsing the initializer for the decomposition declaration, and when the initializer is type-dependent.

Declared at: clang/include/clang/AST/DeclCXX.h:4016

clang::ValueDecl* getDecomposedDecl() const

Description

Get the decomposition declaration that this binding represents a decomposition of.

Declared at: clang/include/clang/AST/DeclCXX.h:4020

clang::VarDecl* getHoldingVar() const

Description

Get the variable (if any) that holds the value of evaluating the binding. Only present for user-defined bindings for tuple-like types.

Declared at: clang/include/clang/AST/DeclCXX.h:4024

void setBinding(clang::QualType DeclaredType,
                clang::Expr* Binding)

Description

Set the binding for this BindingDecl, along with its declared type (which should be a possibly-cv-qualified form of the type of the binding, or a reference to such a type).

Declared at: clang/include/clang/AST/DeclCXX.h:4029

Parameters

clang::QualType DeclaredType
clang::Expr* Binding

void setDecomposedDecl(
    clang::ValueDecl* Decomposed)

Description

Set the decomposed variable for this BindingDecl.

Declared at: clang/include/clang/AST/DeclCXX.h:4035

Parameters

clang::ValueDecl* Decomposed