class SubstNonTypeTemplateParmExpr

Declaration

class SubstNonTypeTemplateParmExpr : public Expr { /* full declaration omitted */ };

Description

Represents a reference to a non-type template parameter that has been substituted with a template argument.

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

Inherits from: Expr

Member Variables

private llvm::PointerIntPair<NonTypeTemplateParmDecl*, 1, bool> ParamAndRef
The replaced parameter and a flag indicating if it was a reference parameter. For class NTTPs, we can't determine that based on the value category alone.
private clang::Stmt* Replacement
The replacement expression.

Inherited from Stmt:

protected

Method Overview

Inherited from Expr:

Inherited from ValueStmt:

Inherited from Stmt:

Methods

SubstNonTypeTemplateParmExpr(
    clang::Stmt::EmptyShell Empty)

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

Parameters

clang::Stmt::EmptyShell Empty

SubstNonTypeTemplateParmExpr(
    clang::QualType Ty,
    clang::ExprValueKind ValueKind,
    clang::SourceLocation Loc,
    clang::NonTypeTemplateParmDecl* Param,
    bool RefParam,
    clang::Expr* Replacement)

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

Parameters

clang::QualType Ty
clang::ExprValueKind ValueKind
clang::SourceLocation Loc
clang::NonTypeTemplateParmDecl* Param
bool RefParam
clang::Expr* Replacement

clang::Stmt::child_range children()

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

clang::Stmt::const_child_range children() const

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

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

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

Parameters

const clang::Stmt* s

clang::SourceLocation getBeginLoc() const

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

clang::SourceLocation getEndLoc() const

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

clang::SourceLocation getNameLoc() const

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

clang::NonTypeTemplateParmDecl* getParameter()
    const

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

clang::QualType getParameterType(
    const clang::ASTContext& Ctx) const

Description

Determine the substituted type of the template parameter.

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

Parameters

const clang::ASTContext& Ctx

clang::Expr* getReplacement() const

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

bool isReferenceParameter() const

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