class ExplicitSpecifier

Declaration

class ExplicitSpecifier { /* full declaration omitted */ };

Description

Store information needed for an explicit specifier. Used by CXXDeductionGuideDecl, CXXConstructorDecl and CXXConversionDecl.

Declared at: clang/include/clang/AST/DeclCXX.h:1828

Member Variables

private llvm::PointerIntPair<Expr*, 2, ExplicitSpecKind> ExplicitSpec = {nullptr, ExplicitSpecKind::ResolvedFalse}

Method Overview

Methods

ExplicitSpecifier()

Declared at: clang/include/clang/AST/DeclCXX.h:1833

ExplicitSpecifier(clang::Expr* Expression,
                  clang::ExplicitSpecKind Kind)

Declared at: clang/include/clang/AST/DeclCXX.h:1834

Parameters

clang::Expr* Expression
clang::ExplicitSpecKind Kind

static clang::ExplicitSpecifier Invalid()

Declared at: clang/include/clang/AST/DeclCXX.h:1868

const clang::Expr* getExpr() const

Declared at: clang/include/clang/AST/DeclCXX.h:1837

clang::Expr* getExpr()

Declared at: clang/include/clang/AST/DeclCXX.h:1838

static clang::ExplicitSpecifier getFromDecl(
    clang::FunctionDecl* Function)

Declared at: clang/include/clang/AST/DeclCXX.h:1864

Parameters

clang::FunctionDecl* Function

static const clang::ExplicitSpecifier getFromDecl(
    const clang::FunctionDecl* Function)

Declared at: clang/include/clang/AST/DeclCXX.h:1865

Parameters

const clang::FunctionDecl* Function

clang::ExplicitSpecKind getKind() const

Declared at: clang/include/clang/AST/DeclCXX.h:1836

bool isEquivalent(
    const clang::ExplicitSpecifier Other) const

Description

Check for equivalence of explicit specifiers.

Declared at: clang/include/clang/AST/DeclCXX.h:1848

Parameters

const clang::ExplicitSpecifier Other

Returns

true if the explicit specifier are equivalent, false otherwise.

bool isExplicit() const

Description

Determine whether this specifier is known to correspond to an explicit declaration. Returns false if the specifier is absent or has an expression that is value-dependent or evaluates to false.

Declared at: clang/include/clang/AST/DeclCXX.h:1852

bool isInvalid() const

Description

Determine if the explicit specifier is invalid. This state occurs after a substitution failures.

Declared at: clang/include/clang/AST/DeclCXX.h:1857

bool isSpecified() const

Description

Determine if the declaration had an explicit specifier of any kind.

Declared at: clang/include/clang/AST/DeclCXX.h:1841

void setExpr(clang::Expr* E)

Declared at: clang/include/clang/AST/DeclCXX.h:1862

Parameters

clang::Expr* E

void setKind(clang::ExplicitSpecKind Kind)

Declared at: clang/include/clang/AST/DeclCXX.h:1861

Parameters

clang::ExplicitSpecKind Kind