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:

protected

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:

Inherited from ValueStmt:

Inherited from Stmt:

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)

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)

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)

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)

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

Declared at: clang/include/clang/AST/ExprConcepts.h:553

clang::Stmt::child_range children()

Declared at: clang/include/clang/AST/ExprConcepts.h:550

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

Declared at: clang/include/clang/AST/ExprConcepts.h:542

clang::RequiresExprBodyDecl* getBody() const

Declared at: clang/include/clang/AST/ExprConcepts.h:518

clang::SourceLocation getEndLoc() const

Declared at: clang/include/clang/AST/ExprConcepts.h:545

ArrayRef<clang::ParmVarDecl*> getLocalParameters()
    const

Declared at: clang/include/clang/AST/ExprConcepts.h:514

clang::SourceLocation getRBraceLoc() const

Declared at: clang/include/clang/AST/ExprConcepts.h:536

ArrayRef<concepts::Requirement*> getRequirements()
    const

Declared at: clang/include/clang/AST/ExprConcepts.h:520

clang::SourceLocation getRequiresKWLoc() const

Declared at: clang/include/clang/AST/ExprConcepts.h:532

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

Declared at: clang/include/clang/AST/ExprConcepts.h:488

Parameters

OverloadToken<clang::ParmVarDecl*>

unsigned int numTrailingObjects(
    OverloadToken<concepts::Requirement*>) const

Declared at: clang/include/clang/AST/ExprConcepts.h:492

Parameters

OverloadToken<concepts::Requirement*>