class RequiresExpr
Declaration
class RequiresExpr : public Expr, private TrailingObjects { /* full declaration omitted */ };
Description
C++2a [expr.prim.req]: A requires-expression provides a concise way to express requirements on template arguments. A requirement is one that can be checked by name lookup (6.4) or by checking properties of types and expressions. [...] A requires-expression is a prvalue of type bool [...]
Declared at: clang/include/clang/AST/ExprConcepts.h:477
Inherits from: Expr, TrailingObjects
Member Variables
- private unsigned int NumLocalParameters
- private unsigned int NumRequirements
- private clang::RequiresExprBodyDecl* Body
- private clang::SourceLocation RBraceLoc
Inherited from Stmt:
Method Overview
- public static clang::RequiresExpr * Create(clang::ASTContext & C, clang::SourceLocation RequiresKWLoc, clang::RequiresExprBodyDecl * Body, ArrayRef<clang::ParmVarDecl *> LocalParameters, ArrayRef<concepts::Requirement *> Requirements, clang::SourceLocation RBraceLoc)
- public static clang::RequiresExpr * Create(clang::ASTContext & C, clang::Stmt::EmptyShell Empty, unsigned int NumLocalParameters, unsigned int NumRequirements)
- private RequiresExpr(clang::ASTContext & C, clang::SourceLocation RequiresKWLoc, clang::RequiresExprBodyDecl * Body, ArrayRef<clang::ParmVarDecl *> LocalParameters, ArrayRef<concepts::Requirement *> Requirements, clang::SourceLocation RBraceLoc)
- private RequiresExpr(clang::ASTContext & C, clang::Stmt::EmptyShell Empty, unsigned int NumLocalParameters, unsigned int NumRequirements)
- 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::RequiresExprBodyDecl * getBody() const
- public clang::SourceLocation getEndLoc() const
- public ArrayRef<clang::ParmVarDecl *> getLocalParameters() const
- public clang::SourceLocation getRBraceLoc() const
- public ArrayRef<concepts::Requirement *> getRequirements() const
- public clang::SourceLocation getRequiresKWLoc() const
- public bool isSatisfied() const
- private unsigned int numTrailingObjects(OverloadToken<clang::ParmVarDecl *>) const
- private unsigned int numTrailingObjects(OverloadToken<concepts::Requirement *>) 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
¶static clang::RequiresExpr* Create(
clang::ASTContext& C,
clang::SourceLocation RequiresKWLoc,
clang::RequiresExprBodyDecl* Body,
ArrayRef<clang::ParmVarDecl*> LocalParameters,
ArrayRef<concepts::Requirement*> Requirements,
clang::SourceLocation RBraceLoc)
static clang::RequiresExpr* Create(
clang::ASTContext& C,
clang::SourceLocation RequiresKWLoc,
clang::RequiresExprBodyDecl* Body,
ArrayRef<clang::ParmVarDecl*> LocalParameters,
ArrayRef<concepts::Requirement*> Requirements,
clang::SourceLocation RBraceLoc)
Declared at: clang/include/clang/AST/ExprConcepts.h:506
Parameters
- clang::ASTContext& C
- clang::SourceLocation RequiresKWLoc
- clang::RequiresExprBodyDecl* Body
- ArrayRef<clang::ParmVarDecl*> LocalParameters
- ArrayRef<concepts::Requirement*> Requirements
- clang::SourceLocation RBraceLoc
¶static clang::RequiresExpr* Create(
clang::ASTContext& C,
clang::Stmt::EmptyShell Empty,
unsigned int NumLocalParameters,
unsigned int NumRequirements)
static clang::RequiresExpr* Create(
clang::ASTContext& C,
clang::Stmt::EmptyShell Empty,
unsigned int NumLocalParameters,
unsigned int NumRequirements)
Declared at: clang/include/clang/AST/ExprConcepts.h:511
Parameters
- clang::ASTContext& C
- clang::Stmt::EmptyShell Empty
- unsigned int NumLocalParameters
- unsigned int NumRequirements
¶RequiresExpr(
clang::ASTContext& C,
clang::SourceLocation RequiresKWLoc,
clang::RequiresExprBodyDecl* Body,
ArrayRef<clang::ParmVarDecl*> LocalParameters,
ArrayRef<concepts::Requirement*> Requirements,
clang::SourceLocation RBraceLoc)
RequiresExpr(
clang::ASTContext& C,
clang::SourceLocation RequiresKWLoc,
clang::RequiresExprBodyDecl* Body,
ArrayRef<clang::ParmVarDecl*> LocalParameters,
ArrayRef<concepts::Requirement*> Requirements,
clang::SourceLocation RBraceLoc)
Declared at: clang/include/clang/AST/ExprConcepts.h:496
Parameters
- clang::ASTContext& C
- clang::SourceLocation RequiresKWLoc
- clang::RequiresExprBodyDecl* Body
- ArrayRef<clang::ParmVarDecl*> LocalParameters
- ArrayRef<concepts::Requirement*> Requirements
- clang::SourceLocation RBraceLoc
¶RequiresExpr(clang::ASTContext& C,
clang::Stmt::EmptyShell Empty,
unsigned int NumLocalParameters,
unsigned int NumRequirements)
RequiresExpr(clang::ASTContext& C,
clang::Stmt::EmptyShell Empty,
unsigned int NumLocalParameters,
unsigned int NumRequirements)
Declared at: clang/include/clang/AST/ExprConcepts.h:501
Parameters
- clang::ASTContext& C
- clang::Stmt::EmptyShell Empty
- unsigned int NumLocalParameters
- unsigned int NumRequirements
¶clang::Stmt::const_child_range children() const
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/ExprConcepts.h:553
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/ExprConcepts.h:550
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/ExprConcepts.h:538
Parameters
- const clang::Stmt* T
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/ExprConcepts.h:542
¶clang::RequiresExprBodyDecl* getBody() const
clang::RequiresExprBodyDecl* getBody() const
Declared at: clang/include/clang/AST/ExprConcepts.h:518
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/ExprConcepts.h:545
¶ArrayRef<clang::ParmVarDecl*> getLocalParameters()
const
ArrayRef<clang::ParmVarDecl*> getLocalParameters()
const
Declared at: clang/include/clang/AST/ExprConcepts.h:514
¶clang::SourceLocation getRBraceLoc() const
clang::SourceLocation getRBraceLoc() const
Declared at: clang/include/clang/AST/ExprConcepts.h:536
¶ArrayRef<concepts::Requirement*> getRequirements()
const
ArrayRef<concepts::Requirement*> getRequirements()
const
Declared at: clang/include/clang/AST/ExprConcepts.h:520
¶clang::SourceLocation getRequiresKWLoc() const
clang::SourceLocation getRequiresKWLoc() const
Declared at: clang/include/clang/AST/ExprConcepts.h:532
¶bool isSatisfied() const
bool isSatisfied() const
Description
Whether or not the requires clause is satisfied. The expression must not be dependent.
Declared at: clang/include/clang/AST/ExprConcepts.h:526
¶unsigned int numTrailingObjects(
OverloadToken<clang::ParmVarDecl*>) const
unsigned int numTrailingObjects(
OverloadToken<clang::ParmVarDecl*>) const
Declared at: clang/include/clang/AST/ExprConcepts.h:488
Parameters
- OverloadToken<clang::ParmVarDecl*>
¶unsigned int numTrailingObjects(
OverloadToken<concepts::Requirement*>) const
unsigned int numTrailingObjects(
OverloadToken<concepts::Requirement*>) const
Declared at: clang/include/clang/AST/ExprConcepts.h:492
Parameters
- OverloadToken<concepts::Requirement*>