class ExprRequirement
Declaration
class ExprRequirement : public Requirement { /* full declaration omitted */ };
Description
A requires-expression requirement which queries the validity and properties of an expression ('simple' and 'compound' requirements).
Declared at: clang/include/clang/AST/ExprConcepts.h:260
Inherits from: Requirement
Member Variables
- private llvm::PointerUnion<Expr*, SubstitutionDiagnostic*> Value
- private clang::SourceLocation NoexceptLoc
- private clang::concepts::ExprRequirement:: ReturnTypeRequirement TypeReq
- private clang::ConceptSpecializationExpr* SubstitutedConstraintExpr
- private clang::concepts::ExprRequirement:: SatisfactionStatus Status
Method Overview
- public ExprRequirement(clang::Expr * E, bool IsSimple, clang::SourceLocation NoexceptLoc, clang::concepts::ExprRequirement::ReturnTypeRequirement Req, clang::concepts::ExprRequirement::SatisfactionStatus Status, clang::ConceptSpecializationExpr * SubstitutedConstraintExpr = nullptr)
- public ExprRequirement(clang::concepts::Requirement::SubstitutionDiagnostic * E, bool IsSimple, clang::SourceLocation NoexceptLoc, clang::concepts::ExprRequirement::ReturnTypeRequirement Req = {})
- public static bool classof(const clang::concepts::Requirement * R)
- public clang::Expr * getExpr() const
- public clang::concepts::Requirement::SubstitutionDiagnostic * getExprSubstitutionDiagnostic() const
- public clang::SourceLocation getNoexceptLoc() const
- public const clang::concepts::ExprRequirement::ReturnTypeRequirement & getReturnTypeRequirement() const
- public clang::ConceptSpecializationExpr * getReturnTypeRequirementSubstitutedConstraintExpr() const
- public clang::concepts::ExprRequirement::SatisfactionStatus getSatisfactionStatus() const
- public bool hasNoexceptRequirement() const
- public bool isCompound() const
- public bool isExprSubstitutionFailure() const
- public bool isSimple() const
Inherited from Requirement:
- public containsUnexpandedParameterPack
- public getKind
- public isDependent
- public isSatisfied
- public setContainsUnexpandedParameterPack
- public setDependent
- public setSatisfied
Methods
¶ExprRequirement(clang::Expr* E,
bool IsSimple,
clang::SourceLocation NoexceptLoc,
clang::concepts::ExprRequirement::
ReturnTypeRequirement Req,
clang::concepts::ExprRequirement::
SatisfactionStatus Status,
clang::ConceptSpecializationExpr*
SubstitutedConstraintExpr =
nullptr)
ExprRequirement(clang::Expr* E,
bool IsSimple,
clang::SourceLocation NoexceptLoc,
clang::concepts::ExprRequirement::
ReturnTypeRequirement Req,
clang::concepts::ExprRequirement::
SatisfactionStatus Status,
clang::ConceptSpecializationExpr*
SubstitutedConstraintExpr =
nullptr)
Description
Construct a compound requirement.
Declared at: clang/include/clang/AST/ExprConcepts.h:349
Parameters
- clang::Expr* E
- the expression which is checked by this requirement.
- bool IsSimple
- whether this was a simple requirement in source.
- clang::SourceLocation NoexceptLoc
- the location of the noexcept keyword, if it was specified, otherwise an empty location.
- clang::concepts::ExprRequirement:: ReturnTypeRequirement Req
- the requirement for the type of the checked expression.
- clang::concepts::ExprRequirement:: SatisfactionStatus Status
- the satisfaction status of this requirement.
- clang::ConceptSpecializationExpr* SubstitutedConstraintExpr = nullptr
¶ExprRequirement(
clang::concepts::Requirement::
SubstitutionDiagnostic* E,
bool IsSimple,
clang::SourceLocation NoexceptLoc,
clang::concepts::ExprRequirement::
ReturnTypeRequirement Req = {})
ExprRequirement(
clang::concepts::Requirement::
SubstitutionDiagnostic* E,
bool IsSimple,
clang::SourceLocation NoexceptLoc,
clang::concepts::ExprRequirement::
ReturnTypeRequirement Req = {})
Description
Construct a compound requirement whose expression was a substitution failure. The requirement is not satisfied.
Declared at: clang/include/clang/AST/ExprConcepts.h:363
Parameters
- clang::concepts::Requirement:: SubstitutionDiagnostic* E
- the diagnostic emitted while instantiating the original expression.
- bool IsSimple
- whether this was a simple requirement in source.
- clang::SourceLocation NoexceptLoc
- the location of the noexcept keyword, if it was specified, otherwise an empty location.
- clang::concepts::ExprRequirement:: ReturnTypeRequirement Req = {}
- the requirement for the type of the checked expression (omit if no requirement was specified).
¶static bool classof(
const clang::concepts::Requirement* R)
static bool classof(
const clang::concepts::Requirement* R)
Declared at: clang/include/clang/AST/ExprConcepts.h:402
Parameters
- const clang::concepts::Requirement* R
¶clang::Expr* getExpr() const
clang::Expr* getExpr() const
Declared at: clang/include/clang/AST/ExprConcepts.h:395
¶clang::concepts::Requirement::
SubstitutionDiagnostic*
getExprSubstitutionDiagnostic() const
clang::concepts::Requirement::
SubstitutionDiagnostic*
getExprSubstitutionDiagnostic() const
Declared at: clang/include/clang/AST/ExprConcepts.h:388
¶clang::SourceLocation getNoexceptLoc() const
clang::SourceLocation getNoexceptLoc() const
Declared at: clang/include/clang/AST/ExprConcepts.h:370
¶const clang::concepts::ExprRequirement::
ReturnTypeRequirement&
getReturnTypeRequirement() const
const clang::concepts::ExprRequirement::
ReturnTypeRequirement&
getReturnTypeRequirement() const
Declared at: clang/include/clang/AST/ExprConcepts.h:378
¶clang::ConceptSpecializationExpr*
getReturnTypeRequirementSubstitutedConstraintExpr()
const
clang::ConceptSpecializationExpr*
getReturnTypeRequirementSubstitutedConstraintExpr()
const
Declared at: clang/include/clang/AST/ExprConcepts.h:383
¶clang::concepts::ExprRequirement::
SatisfactionStatus
getSatisfactionStatus() const
clang::concepts::ExprRequirement::
SatisfactionStatus
getSatisfactionStatus() const
Declared at: clang/include/clang/AST/ExprConcepts.h:372
¶bool hasNoexceptRequirement() const
bool hasNoexceptRequirement() const
Declared at: clang/include/clang/AST/ExprConcepts.h:369
¶bool isCompound() const
bool isCompound() const
Declared at: clang/include/clang/AST/ExprConcepts.h:367
¶bool isExprSubstitutionFailure() const
bool isExprSubstitutionFailure() const
Declared at: clang/include/clang/AST/ExprConcepts.h:374
¶bool isSimple() const
bool isSimple() const
Declared at: clang/include/clang/AST/ExprConcepts.h:366