class FunctionParmPackExpr

Declaration

class FunctionParmPackExpr : public Expr, private TrailingObjects { /* full declaration omitted */ };

Description

Represents a reference to a function parameter pack or init-capture pack that has been substituted but not yet expanded. When a pack expansion contains multiple parameter packs at different levels, this node is used to represent a function parameter pack at an outer level which we have already substituted to refer to expanded parameters, but where the containing pack expansion cannot yet be expanded.

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

Inherits from: Expr, TrailingObjects

Member Variables

private clang::VarDecl* ParamPack
The function parameter pack which was referenced.
private clang::SourceLocation NameLoc
The location of the function parameter pack reference.
private unsigned int NumParameters
The number of expansions of this pack.

Inherited from Stmt:

protected

Method Overview

  • public static clang::FunctionParmPackExpr * Create(const clang::ASTContext & Context, clang::QualType T, clang::VarDecl * ParamPack, clang::SourceLocation NameLoc, ArrayRef<clang::VarDecl *> Params)
  • public static clang::FunctionParmPackExpr * CreateEmpty(const clang::ASTContext & Context, unsigned int NumParams)
  • private FunctionParmPackExpr(clang::QualType T, clang::VarDecl * ParamPack, clang::SourceLocation NameLoc, unsigned int NumParams, clang::VarDecl *const * Params)
  • public clang::FunctionParmPackExpr::iterator begin() const
  • public clang::Stmt::child_range children()
  • public clang::Stmt::const_child_range children() const
  • public static bool classof(const clang::Stmt * T)
  • public clang::FunctionParmPackExpr::iterator end() const
  • public clang::SourceLocation getBeginLoc() const
  • public clang::SourceLocation getEndLoc() const
  • public clang::VarDecl * getExpansion(unsigned int I) const
  • public unsigned int getNumExpansions() const
  • public clang::VarDecl * getParameterPack() const
  • public clang::SourceLocation getParameterPackLocation() const

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

Methods

static clang::FunctionParmPackExpr* Create(
    const clang::ASTContext& Context,
    clang::QualType T,
    clang::VarDecl* ParamPack,
    clang::SourceLocation NameLoc,
    ArrayRef<clang::VarDecl*> Params)

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

Parameters

const clang::ASTContext& Context
clang::QualType T
clang::VarDecl* ParamPack
clang::SourceLocation NameLoc
ArrayRef<clang::VarDecl*> Params

static clang::FunctionParmPackExpr* CreateEmpty(
    const clang::ASTContext& Context,
    unsigned int NumParams)

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

Parameters

const clang::ASTContext& Context
unsigned int NumParams

FunctionParmPackExpr(
    clang::QualType T,
    clang::VarDecl* ParamPack,
    clang::SourceLocation NameLoc,
    unsigned int NumParams,
    clang::VarDecl* const* Params)

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

Parameters

clang::QualType T
clang::VarDecl* ParamPack
clang::SourceLocation NameLoc
unsigned int NumParams
clang::VarDecl* const* Params

clang::FunctionParmPackExpr::iterator begin()
    const

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

clang::Stmt::child_range children()

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

clang::Stmt::const_child_range children() const

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

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

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

Parameters

const clang::Stmt* T

clang::FunctionParmPackExpr::iterator end() const

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

clang::SourceLocation getBeginLoc() const

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

clang::SourceLocation getEndLoc() const

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

clang::VarDecl* getExpansion(unsigned int I) const

Description

Get an expansion of the parameter pack by index.

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

Parameters

unsigned int I

unsigned int getNumExpansions() const

Description

Get the number of parameters in this parameter pack.

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

clang::VarDecl* getParameterPack() const

Description

Get the parameter pack which this expression refers to.

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

clang::SourceLocation getParameterPackLocation()
    const

Description

Get the location of the parameter pack.

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