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
- public ExplicitSpecifier()
- public ExplicitSpecifier(clang::Expr * Expression, clang::ExplicitSpecKind Kind)
- public static clang::ExplicitSpecifier Invalid()
- public const clang::Expr * getExpr() const
- public clang::Expr * getExpr()
- public static clang::ExplicitSpecifier getFromDecl(clang::FunctionDecl * Function)
- public static const clang::ExplicitSpecifier getFromDecl(const clang::FunctionDecl * Function)
- public clang::ExplicitSpecKind getKind() const
- public bool isEquivalent(const clang::ExplicitSpecifier Other) const
- public bool isExplicit() const
- public bool isInvalid() const
- public bool isSpecified() const
- public void setExpr(clang::Expr * E)
- public void setKind(clang::ExplicitSpecKind Kind)
Methods
¶ExplicitSpecifier()
ExplicitSpecifier()
Declared at: clang/include/clang/AST/DeclCXX.h:1833
¶ExplicitSpecifier(clang::Expr* Expression,
clang::ExplicitSpecKind Kind)
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()
static clang::ExplicitSpecifier Invalid()
Declared at: clang/include/clang/AST/DeclCXX.h:1868
¶const clang::Expr* getExpr() const
const clang::Expr* getExpr() const
Declared at: clang/include/clang/AST/DeclCXX.h:1837
¶clang::Expr* getExpr()
clang::Expr* getExpr()
Declared at: clang/include/clang/AST/DeclCXX.h:1838
¶static clang::ExplicitSpecifier getFromDecl(
clang::FunctionDecl* Function)
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)
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
clang::ExplicitSpecKind getKind() const
Declared at: clang/include/clang/AST/DeclCXX.h:1836
¶bool isEquivalent(
const clang::ExplicitSpecifier Other) const
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
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
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
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)
void setExpr(clang::Expr* E)
Declared at: clang/include/clang/AST/DeclCXX.h:1862
Parameters
- clang::Expr* E
¶void setKind(clang::ExplicitSpecKind Kind)
void setKind(clang::ExplicitSpecKind Kind)
Declared at: clang/include/clang/AST/DeclCXX.h:1861
Parameters
- clang::ExplicitSpecKind Kind