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:
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:
- public Classify
- public ClassifyLValue
- public ClassifyModifiable
- public EvaluateAsBooleanCondition
- public EvaluateAsConstantExpr
- public EvaluateAsFixedPoint
- public EvaluateAsFloat
- public EvaluateAsInitializer
- public EvaluateAsInt
- public EvaluateAsLValue
- public EvaluateAsRValue
- public EvaluateForOverflow
- public EvaluateKnownConstInt
- public EvaluateKnownConstIntCheckOverflow
- public EvaluateWithSubstitution
- public HasSideEffects
- public IgnoreCasts
- public IgnoreCasts
- public IgnoreConversionOperatorSingleStep
- public IgnoreConversionOperatorSingleStep
- public IgnoreImpCasts
- public IgnoreImpCasts
- public IgnoreImplicit
- public IgnoreImplicit
- public IgnoreImplicitAsWritten
- public IgnoreImplicitAsWritten
- public IgnoreParenBaseCasts
- public IgnoreParenBaseCasts
- public IgnoreParenCasts
- public IgnoreParenCasts
- public IgnoreParenImpCasts
- public IgnoreParenImpCasts
- public IgnoreParenLValueCasts
- public IgnoreParenLValueCasts
- public IgnoreParenNoopCasts
- public IgnoreParenNoopCasts
- public IgnoreParens
- public IgnoreParens
- public IgnoreUnlessSpelledInSource
- public IgnoreUnlessSpelledInSource
- public classof
- public containsErrors
- public containsUnexpandedParameterPack
- public findBoundMemberType
- public getAsBuiltinConstantDeclRef
- public getBestDynamicClassType
- public getBestDynamicClassTypeExpr
- public getDependence
- public getExprLoc
- public getFPFeaturesInEffect
- public getIntegerConstantExpr
- public getObjCProperty
- public getObjectKind
- public getReferencedDeclOfCallee
- public getReferencedDeclOfCallee
- public getSourceBitField
- public getSourceBitField
- public getType
- public getValueKind
- public getValueKindForType
- public hasAnyTypeDependentArguments
- public hasNonTrivialCall
- public hasPlaceholderType
- public hasPlaceholderType
- public isBoundMemberFunction
- public isCXX11ConstantExpr
- public isCXX98IntegralConstantExpr
- public isConstantInitializer
- public isDefaultArgument
- public isEvaluatable
- public isGLValue
- public isImplicitCXXThis
- public isInstantiationDependent
- public isIntegerConstantExpr
- public isKnownToHaveBooleanValue
- public isLValue
- public isModifiableLvalue
- public isNullPointerConstant
- public isOBJCGCCandidate
- public isObjCSelfExpr
- public isOrdinaryOrBitFieldObject
- public isPRValue
- public isPotentialConstantExpr
- public isPotentialConstantExprUnevaluated
- public isReadIfDiscardedInCPlusPlus11
- public isSameComparisonOperand
- public isTemporaryObject
- public isTypeDependent
- public isUnusedResultAWarning
- public isValueDependent
- public isXValue
- public refersToBitField
- public refersToGlobalRegisterVar
- public refersToMatrixElement
- public refersToVectorElement
- protected setDependence
- public setObjectKind
- public setType
- public setValueKind
- public skipRValueSubobjectAdjustments
- public skipRValueSubobjectAdjustments
- public tryEvaluateObjectSize
- public tryEvaluateStrLen
Inherited from ValueStmt:
Inherited from Stmt:
- public EnableStatistics
- public IgnoreContainers
- public IgnoreContainers
- public PrintStats
- public ProcessODRHash
- public Profile
- public addStmtClass
- public child_begin
- public child_begin
- public child_end
- public child_end
- public children
- public children
- public determineLikelihoodConflict
- public dump
- public dump
- public dumpColor
- public dumpPretty
- public getBeginLoc
- public getEndLoc
- public getID
- public getLikelihood
- public getLikelihood
- public getLikelihood
- public getLikelihoodAttr
- public getSourceRange
- public getStmtClass
- public getStmtClassName
- public printJson
- public printPretty
- public printPrettyControlled
- public stripLabelLikeStatements
- public stripLabelLikeStatements
- public viewAST
Methods
¶CXXFoldExpr(clang::Stmt::EmptyShell Empty)
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)
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
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/ExprCXX.h:4678
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/ExprCXX.h:4674
¶static bool classof(const clang::Stmt* T)
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
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:4653
¶clang::UnresolvedLookupExpr* getCallee() const
clang::UnresolvedLookupExpr* getCallee() const
Declared at: clang/include/clang/AST/ExprCXX.h:4622
¶clang::SourceLocation getEllipsisLoc() const
clang::SourceLocation getEllipsisLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:4644
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:4661
¶clang::Expr* getInit() const
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
clang::Expr* getLHS() const
Declared at: clang/include/clang/AST/ExprCXX.h:4625
¶clang::SourceLocation getLParenLoc() const
clang::SourceLocation getLParenLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:4642
¶Optional<unsigned int> getNumExpansions() const
Optional<unsigned int> getNumExpansions() const
Declared at: clang/include/clang/AST/ExprCXX.h:4647
¶clang::BinaryOperatorKind getOperator() const
clang::BinaryOperatorKind getOperator() const
Declared at: clang/include/clang/AST/ExprCXX.h:4645
¶clang::Expr* getPattern() const
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
clang::Expr* getRHS() const
Declared at: clang/include/clang/AST/ExprCXX.h:4626
¶clang::SourceLocation getRParenLoc() const
clang::SourceLocation getRParenLoc() const
Declared at: clang/include/clang/AST/ExprCXX.h:4643
¶bool isLeftFold() const
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
bool isRightFold() const
Description
Does this produce a right-associated sequence of operators?
Declared at: clang/include/clang/AST/ExprCXX.h:4629