class CXXFoldExpr

Declaration

class CXXFoldExpr : public Expr { /* full declaration omitted */ };

Description

Represents a folding of a pack over an operator. This expression is always dependent and represents a pack expansion of the forms: ( expr op ... ) ( ... op expr ) ( expr op ... op expr )

Declared at: clang/include/clang/AST/ExprCXX.h:4591

Inherits from: Expr

Member Variables

private clang::SourceLocation LParenLoc
private clang::SourceLocation EllipsisLoc
private clang::SourceLocation RParenLoc
private unsigned int NumExpansions
private clang::Stmt* [3] SubExprs
private clang::BinaryOperatorKind Opcode

Inherited from Stmt:

protected

Method Overview

  • public CXXFoldExpr(clang::Stmt::EmptyShell Empty)
  • public CXXFoldExpr(clang::QualType T, clang::UnresolvedLookupExpr * Callee, clang::SourceLocation LParenLoc, clang::Expr * LHS, clang::BinaryOperatorKind Opcode, clang::SourceLocation EllipsisLoc, clang::Expr * RHS, clang::SourceLocation RParenLoc, Optional<unsigned int> NumExpansions)
  • public clang::Stmt::const_child_range children() const
  • public clang::Stmt::child_range children()
  • public static bool classof(const clang::Stmt * T)
  • public clang::SourceLocation getBeginLoc() const
  • public clang::UnresolvedLookupExpr * getCallee() const
  • public clang::SourceLocation getEllipsisLoc() const
  • public clang::SourceLocation getEndLoc() const
  • public clang::Expr * getInit() const
  • public clang::Expr * getLHS() const
  • public clang::SourceLocation getLParenLoc() const
  • public Optional<unsigned int> getNumExpansions() const
  • public clang::BinaryOperatorKind getOperator() const
  • public clang::Expr * getPattern() const
  • public clang::Expr * getRHS() const
  • public clang::SourceLocation getRParenLoc() const
  • public bool isLeftFold() const
  • public bool isRightFold() const

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

Methods

CXXFoldExpr(clang::Stmt::EmptyShell Empty)

Declared at: clang/include/clang/AST/ExprCXX.h:4620

Parameters

clang::Stmt::EmptyShell Empty

CXXFoldExpr(clang::QualType T,
            clang::UnresolvedLookupExpr* Callee,
            clang::SourceLocation LParenLoc,
            clang::Expr* LHS,
            clang::BinaryOperatorKind Opcode,
            clang::SourceLocation EllipsisLoc,
            clang::Expr* RHS,
            clang::SourceLocation RParenLoc,
            Optional<unsigned int> NumExpansions)

Declared at: clang/include/clang/AST/ExprCXX.h:4607

Parameters

clang::QualType T
clang::UnresolvedLookupExpr* Callee
clang::SourceLocation LParenLoc
clang::Expr* LHS
clang::BinaryOperatorKind Opcode
clang::SourceLocation EllipsisLoc
clang::Expr* RHS
clang::SourceLocation RParenLoc
Optional<unsigned int> NumExpansions

clang::Stmt::const_child_range children() const

Declared at: clang/include/clang/AST/ExprCXX.h:4678

clang::Stmt::child_range children()

Declared at: clang/include/clang/AST/ExprCXX.h:4674

static bool classof(const clang::Stmt* T)

Declared at: clang/include/clang/AST/ExprCXX.h:4669

Parameters

const clang::Stmt* T

clang::SourceLocation getBeginLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:4653

clang::UnresolvedLookupExpr* getCallee() const

Declared at: clang/include/clang/AST/ExprCXX.h:4622

clang::SourceLocation getEllipsisLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:4644

clang::SourceLocation getEndLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:4661

clang::Expr* getInit() const

Description

Get the operand that doesn't contain a pack, for a binary fold.

Declared at: clang/include/clang/AST/ExprCXX.h:4640

clang::Expr* getLHS() const

Declared at: clang/include/clang/AST/ExprCXX.h:4625

clang::SourceLocation getLParenLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:4642

Optional<unsigned int> getNumExpansions() const

Declared at: clang/include/clang/AST/ExprCXX.h:4647

clang::BinaryOperatorKind getOperator() const

Declared at: clang/include/clang/AST/ExprCXX.h:4645

clang::Expr* getPattern() const

Description

Get the pattern, that is, the operand that contains an unexpanded pack.

Declared at: clang/include/clang/AST/ExprCXX.h:4637

clang::Expr* getRHS() const

Declared at: clang/include/clang/AST/ExprCXX.h:4626

clang::SourceLocation getRParenLoc() const

Declared at: clang/include/clang/AST/ExprCXX.h:4643

bool isLeftFold() const

Description

Does this produce a left-associated sequence of operators?

Declared at: clang/include/clang/AST/ExprCXX.h:4634

bool isRightFold() const

Description

Does this produce a right-associated sequence of operators?

Declared at: clang/include/clang/AST/ExprCXX.h:4629