clang  10.0.0svn
Public Member Functions | Static Public Member Functions | List of all members
clang::ExplicitSpecifier Class Reference

Store information needed for an explicit specifier. More...

#include "clang/AST/DeclCXX.h"

Public Member Functions

 ExplicitSpecifier ()=default
 
 ExplicitSpecifier (Expr *Expression, ExplicitSpecKind Kind)
 
ExplicitSpecKind getKind () const
 
const ExprgetExpr () const
 
ExprgetExpr ()
 
bool isSpecified () const
 Return true if the ExplicitSpecifier isn't defaulted. More...
 
bool isEquivalent (const ExplicitSpecifier Other) const
 Check for Equivalence of explicit specifiers. More...
 
bool isExplicit () const
 Return true if the explicit specifier is already resolved to be explicit. More...
 
bool isInvalid () const
 Return true if the ExplicitSpecifier isn't valid. More...
 
void setKind (ExplicitSpecKind Kind)
 
void setExpr (Expr *E)
 

Static Public Member Functions

static ExplicitSpecifier getFromDecl (FunctionDecl *Function)
 
static const ExplicitSpecifier getFromDecl (const FunctionDecl *Function)
 
static ExplicitSpecifier Invalid ()
 

Detailed Description

Store information needed for an explicit specifier.

used by CXXDeductionGuideDecl, CXXConstructorDecl and CXXConversionDecl.

Definition at line 1792 of file DeclCXX.h.

Constructor & Destructor Documentation

◆ ExplicitSpecifier() [1/2]

clang::ExplicitSpecifier::ExplicitSpecifier ( )
default

◆ ExplicitSpecifier() [2/2]

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

Definition at line 1798 of file DeclCXX.h.

Member Function Documentation

◆ getExpr() [1/2]

const Expr* clang::ExplicitSpecifier::getExpr ( ) const
inline

◆ getExpr() [2/2]

Expr* clang::ExplicitSpecifier::getExpr ( )
inline

Definition at line 1802 of file DeclCXX.h.

◆ getFromDecl() [1/2]

ExplicitSpecifier ExplicitSpecifier::getFromDecl ( FunctionDecl Function)
static

◆ getFromDecl() [2/2]

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

Definition at line 1829 of file DeclCXX.h.

◆ getKind()

ExplicitSpecKind clang::ExplicitSpecifier::getKind ( ) const
inline

◆ Invalid()

static ExplicitSpecifier clang::ExplicitSpecifier::Invalid ( )
inlinestatic

Definition at line 1832 of file DeclCXX.h.

References clang::Unresolved.

◆ isEquivalent()

bool ExplicitSpecifier::isEquivalent ( const ExplicitSpecifier  Other) const

Check for Equivalence of explicit specifiers.

Return True if the explicit specifier are equivalent false otherwise.

Definition at line 1923 of file DeclCXX.cpp.

References clang::ODRHash::AddStmt(), clang::ODRHash::CalculateHash(), getExpr(), clang::Decl::getKind(), getKind(), and clang::Unresolved.

◆ isExplicit()

bool clang::ExplicitSpecifier::isExplicit ( ) const
inline

Return true if the explicit specifier is already resolved to be explicit.

Definition at line 1814 of file DeclCXX.h.

References clang::ResolvedTrue.

Referenced by clang::CXXDeductionGuideDecl::isExplicit().

◆ isInvalid()

bool clang::ExplicitSpecifier::isInvalid ( ) const
inline

Return true if the ExplicitSpecifier isn't valid.

This state occurs after a substitution failures.

Definition at line 1819 of file DeclCXX.h.

References clang::Unresolved.

Referenced by clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().

◆ isSpecified()

bool clang::ExplicitSpecifier::isSpecified ( ) const
inline

Return true if the ExplicitSpecifier isn't defaulted.

Definition at line 1805 of file DeclCXX.h.

References clang::ResolvedFalse.

Referenced by clang::DeclSpec::hasExplicitSpecifier(), and printExplicitSpecifier().

◆ setExpr()

void clang::ExplicitSpecifier::setExpr ( Expr E)
inline

Definition at line 1824 of file DeclCXX.h.

◆ setKind()

void clang::ExplicitSpecifier::setKind ( ExplicitSpecKind  Kind)
inline

Definition at line 1823 of file DeclCXX.h.


The documentation for this class was generated from the following files: