class ConceptSpecializationExpr
Declaration
class ConceptSpecializationExpr : public Expr,
public ConceptReference,
private TrailingObjects { /* full declaration omitted */ };
Description
Represents the specialization of a concept - evaluates to a prvalue of type bool.
According to C++2a [expr.prim.id]p3 an id-expression that denotes the specialization of a concept results in a prvalue of type bool.
Declared at: clang/include/clang/AST/ExprConcepts.h:40
Inherits from: Expr, ConceptReference, TrailingObjects
Member Variables
- protected unsigned int NumTemplateArgs
- protected clang::ASTConstraintSatisfaction* Satisfaction
Inherited from ConceptReference:
- protected NestedNameSpec
- protected TemplateKWLoc
- protected ConceptName
- protected FoundDecl
- protected NamedConcept
- protected ArgsAsWritten
Inherited from Stmt:
Method Overview
- protected ConceptSpecializationExpr(const clang::ASTContext & C, clang::NestedNameSpecifierLoc NNS, clang::SourceLocation TemplateKWLoc, clang::DeclarationNameInfo ConceptNameInfo, clang::NamedDecl * FoundDecl, clang::ConceptDecl * NamedConcept, const clang::ASTTemplateArgumentListInfo * ArgsAsWritten, ArrayRef<clang::TemplateArgument> ConvertedArgs, const clang::ConstraintSatisfaction * Satisfaction)
- protected ConceptSpecializationExpr(const clang::ASTContext & C, clang::ConceptDecl * NamedConcept, ArrayRef<clang::TemplateArgument> ConvertedArgs, const clang::ConstraintSatisfaction * Satisfaction, bool Dependent, bool ContainsUnexpandedParameterPack)
- protected ConceptSpecializationExpr(clang::Stmt::EmptyShell Empty, unsigned int NumTemplateArgs)
- public static clang::ConceptSpecializationExpr * Create(const clang::ASTContext & C, clang::NestedNameSpecifierLoc NNS, clang::SourceLocation TemplateKWLoc, clang::DeclarationNameInfo ConceptNameInfo, clang::NamedDecl * FoundDecl, clang::ConceptDecl * NamedConcept, const clang::ASTTemplateArgumentListInfo * ArgsAsWritten, ArrayRef<clang::TemplateArgument> ConvertedArgs, const clang::ConstraintSatisfaction * Satisfaction)
- public static clang::ConceptSpecializationExpr * Create(const clang::ASTContext & C, clang::ConceptDecl * NamedConcept, ArrayRef<clang::TemplateArgument> ConvertedArgs, const clang::ConstraintSatisfaction * Satisfaction, bool Dependent, bool ContainsUnexpandedParameterPack)
- public static clang::ConceptSpecializationExpr * Create(clang::ASTContext & C, clang::Stmt::EmptyShell Empty, unsigned int NumTemplateArgs)
- public clang::Stmt::child_range children()
- public clang::Stmt::const_child_range children() const
- public static bool classof(const clang::Stmt * T)
- public clang::SourceLocation getBeginLoc() const
- public clang::SourceLocation getEndLoc() const
- public const clang::ASTConstraintSatisfaction & getSatisfaction() const
- public ArrayRef<clang::TemplateArgument> getTemplateArguments() const
- public bool isSatisfied() const
- public void setTemplateArguments(ArrayRef<clang::TemplateArgument> Converted)
Inherited from ConceptReference:
- public getConceptNameInfo
- public getConceptNameLoc
- public getFoundDecl
- public getNamedConcept
- public getNestedNameSpecifierLoc
- public getTemplateArgsAsWritten
- public getTemplateKWLoc
- public hasExplicitTemplateArgs
Inherited from Expr:
- public Classify
- public ClassifyLValue
- public ClassifyModifiable
- public EvaluateAsBooleanCondition
- public EvaluateAsConstantExpr
- public EvaluateAsFixedPoint
- public EvaluateAsFloat
- public EvaluateAsInitializer
- public EvaluateAsInt
- public EvaluateAsLValue
- public EvaluateAsRValue
- public EvaluateForOverflow
- public EvaluateKnownConstInt
- public EvaluateKnownConstIntCheckOverflow
- public EvaluateWithSubstitution
- public HasSideEffects
- public IgnoreCasts
- public IgnoreCasts
- public IgnoreConversionOperatorSingleStep
- public IgnoreConversionOperatorSingleStep
- public IgnoreImpCasts
- public IgnoreImpCasts
- public IgnoreImplicit
- public IgnoreImplicit
- public IgnoreImplicitAsWritten
- public IgnoreImplicitAsWritten
- public IgnoreParenBaseCasts
- public IgnoreParenBaseCasts
- public IgnoreParenCasts
- public IgnoreParenCasts
- public IgnoreParenImpCasts
- public IgnoreParenImpCasts
- public IgnoreParenLValueCasts
- public IgnoreParenLValueCasts
- public IgnoreParenNoopCasts
- public IgnoreParenNoopCasts
- public IgnoreParens
- public IgnoreParens
- public IgnoreUnlessSpelledInSource
- public IgnoreUnlessSpelledInSource
- public classof
- public containsErrors
- public containsUnexpandedParameterPack
- public findBoundMemberType
- public getAsBuiltinConstantDeclRef
- public getBestDynamicClassType
- public getBestDynamicClassTypeExpr
- public getDependence
- public getExprLoc
- public getFPFeaturesInEffect
- public getIntegerConstantExpr
- public getObjCProperty
- public getObjectKind
- public getReferencedDeclOfCallee
- public getReferencedDeclOfCallee
- public getSourceBitField
- public getSourceBitField
- public getType
- public getValueKind
- public getValueKindForType
- public hasAnyTypeDependentArguments
- public hasNonTrivialCall
- public hasPlaceholderType
- public hasPlaceholderType
- public isBoundMemberFunction
- public isCXX11ConstantExpr
- public isCXX98IntegralConstantExpr
- public isConstantInitializer
- public isDefaultArgument
- public isEvaluatable
- public isGLValue
- public isImplicitCXXThis
- public isInstantiationDependent
- public isIntegerConstantExpr
- public isKnownToHaveBooleanValue
- public isLValue
- public isModifiableLvalue
- public isNullPointerConstant
- public isOBJCGCCandidate
- public isObjCSelfExpr
- public isOrdinaryOrBitFieldObject
- public isPRValue
- public isPotentialConstantExpr
- public isPotentialConstantExprUnevaluated
- public isReadIfDiscardedInCPlusPlus11
- public isSameComparisonOperand
- public isTemporaryObject
- public isTypeDependent
- public isUnusedResultAWarning
- public isValueDependent
- public isXValue
- public refersToBitField
- public refersToGlobalRegisterVar
- public refersToMatrixElement
- public refersToVectorElement
- protected setDependence
- public setObjectKind
- public setType
- public setValueKind
- public skipRValueSubobjectAdjustments
- public skipRValueSubobjectAdjustments
- public tryEvaluateObjectSize
- public tryEvaluateStrLen
Inherited from ValueStmt:
Inherited from Stmt:
- public EnableStatistics
- public IgnoreContainers
- public IgnoreContainers
- public PrintStats
- public ProcessODRHash
- public Profile
- public addStmtClass
- public child_begin
- public child_begin
- public child_end
- public child_end
- public children
- public children
- public determineLikelihoodConflict
- public dump
- public dump
- public dumpColor
- public dumpPretty
- public getBeginLoc
- public getEndLoc
- public getID
- public getLikelihood
- public getLikelihood
- public getLikelihood
- public getLikelihoodAttr
- public getSourceRange
- public getStmtClass
- public getStmtClassName
- public printJson
- public printPretty
- public printPrettyControlled
- public stripLabelLikeStatements
- public stripLabelLikeStatements
- public viewAST
Methods
¶ConceptSpecializationExpr(
const clang::ASTContext& C,
clang::NestedNameSpecifierLoc NNS,
clang::SourceLocation TemplateKWLoc,
clang::DeclarationNameInfo ConceptNameInfo,
clang::NamedDecl* FoundDecl,
clang::ConceptDecl* NamedConcept,
const clang::ASTTemplateArgumentListInfo*
ArgsAsWritten,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction)
ConceptSpecializationExpr(
const clang::ASTContext& C,
clang::NestedNameSpecifierLoc NNS,
clang::SourceLocation TemplateKWLoc,
clang::DeclarationNameInfo ConceptNameInfo,
clang::NamedDecl* FoundDecl,
clang::ConceptDecl* NamedConcept,
const clang::ASTTemplateArgumentListInfo*
ArgsAsWritten,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction)
Declared at: clang/include/clang/AST/ExprConcepts.h:58
Parameters
- const clang::ASTContext& C
- clang::NestedNameSpecifierLoc NNS
- clang::SourceLocation TemplateKWLoc
- clang::DeclarationNameInfo ConceptNameInfo
- clang::NamedDecl* FoundDecl
- clang::ConceptDecl* NamedConcept
- const clang::ASTTemplateArgumentListInfo* ArgsAsWritten
- ArrayRef<clang::TemplateArgument> ConvertedArgs
- const clang::ConstraintSatisfaction* Satisfaction
¶ConceptSpecializationExpr(
const clang::ASTContext& C,
clang::ConceptDecl* NamedConcept,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction,
bool Dependent,
bool ContainsUnexpandedParameterPack)
ConceptSpecializationExpr(
const clang::ASTContext& C,
clang::ConceptDecl* NamedConcept,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction,
bool Dependent,
bool ContainsUnexpandedParameterPack)
Declared at: clang/include/clang/AST/ExprConcepts.h:66
Parameters
- const clang::ASTContext& C
- clang::ConceptDecl* NamedConcept
- ArrayRef<clang::TemplateArgument> ConvertedArgs
- const clang::ConstraintSatisfaction* Satisfaction
- bool Dependent
- bool ContainsUnexpandedParameterPack
¶ConceptSpecializationExpr(
clang::Stmt::EmptyShell Empty,
unsigned int NumTemplateArgs)
ConceptSpecializationExpr(
clang::Stmt::EmptyShell Empty,
unsigned int NumTemplateArgs)
Declared at: clang/include/clang/AST/ExprConcepts.h:72
Parameters
- clang::Stmt::EmptyShell Empty
- unsigned int NumTemplateArgs
¶static clang::ConceptSpecializationExpr* Create(
const clang::ASTContext& C,
clang::NestedNameSpecifierLoc NNS,
clang::SourceLocation TemplateKWLoc,
clang::DeclarationNameInfo ConceptNameInfo,
clang::NamedDecl* FoundDecl,
clang::ConceptDecl* NamedConcept,
const clang::ASTTemplateArgumentListInfo*
ArgsAsWritten,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction)
static clang::ConceptSpecializationExpr* Create(
const clang::ASTContext& C,
clang::NestedNameSpecifierLoc NNS,
clang::SourceLocation TemplateKWLoc,
clang::DeclarationNameInfo ConceptNameInfo,
clang::NamedDecl* FoundDecl,
clang::ConceptDecl* NamedConcept,
const clang::ASTTemplateArgumentListInfo*
ArgsAsWritten,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction)
Declared at: clang/include/clang/AST/ExprConcepts.h:77
Parameters
- const clang::ASTContext& C
- clang::NestedNameSpecifierLoc NNS
- clang::SourceLocation TemplateKWLoc
- clang::DeclarationNameInfo ConceptNameInfo
- clang::NamedDecl* FoundDecl
- clang::ConceptDecl* NamedConcept
- const clang::ASTTemplateArgumentListInfo* ArgsAsWritten
- ArrayRef<clang::TemplateArgument> ConvertedArgs
- const clang::ConstraintSatisfaction* Satisfaction
¶static clang::ConceptSpecializationExpr* Create(
const clang::ASTContext& C,
clang::ConceptDecl* NamedConcept,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction,
bool Dependent,
bool ContainsUnexpandedParameterPack)
static clang::ConceptSpecializationExpr* Create(
const clang::ASTContext& C,
clang::ConceptDecl* NamedConcept,
ArrayRef<clang::TemplateArgument>
ConvertedArgs,
const clang::ConstraintSatisfaction*
Satisfaction,
bool Dependent,
bool ContainsUnexpandedParameterPack)
Declared at: clang/include/clang/AST/ExprConcepts.h:85
Parameters
- const clang::ASTContext& C
- clang::ConceptDecl* NamedConcept
- ArrayRef<clang::TemplateArgument> ConvertedArgs
- const clang::ConstraintSatisfaction* Satisfaction
- bool Dependent
- bool ContainsUnexpandedParameterPack
¶static clang::ConceptSpecializationExpr* Create(
clang::ASTContext& C,
clang::Stmt::EmptyShell Empty,
unsigned int NumTemplateArgs)
static clang::ConceptSpecializationExpr* Create(
clang::ASTContext& C,
clang::Stmt::EmptyShell Empty,
unsigned int NumTemplateArgs)
Declared at: clang/include/clang/AST/ExprConcepts.h:92
Parameters
- clang::ASTContext& C
- clang::Stmt::EmptyShell Empty
- unsigned int NumTemplateArgs
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/ExprConcepts.h:139
¶clang::Stmt::const_child_range children() const
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/ExprConcepts.h:142
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/ExprConcepts.h:120
Parameters
- const clang::Stmt* T
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/ExprConcepts.h:124
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/ExprConcepts.h:130
¶const clang::ASTConstraintSatisfaction&
getSatisfaction() const
const clang::ASTConstraintSatisfaction&
getSatisfaction() const
Description
Get elaborated satisfaction info about the template arguments' satisfaction of the named concept. The expression must not be dependent.
Declared at: clang/include/clang/AST/ExprConcepts.h:114
¶ArrayRef<clang::TemplateArgument>
getTemplateArguments() const
ArrayRef<clang::TemplateArgument>
getTemplateArguments() const
Declared at: clang/include/clang/AST/ExprConcepts.h:94
¶bool isSatisfied() const
bool isSatisfied() const
Description
Whether or not the concept with the given arguments was satisfied when the expression was created. The expression must not be dependent.
Declared at: clang/include/clang/AST/ExprConcepts.h:105
¶void setTemplateArguments(
ArrayRef<clang::TemplateArgument> Converted)
void setTemplateArguments(
ArrayRef<clang::TemplateArgument> Converted)
Description
Set new template arguments for this concept specialization.
Declared at: clang/include/clang/AST/ExprConcepts.h:100
Parameters
- ArrayRef<clang::TemplateArgument> Converted