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() constDeclared 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() constDeclared at: clang/include/clang/AST/ExprConcepts.h:124
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() constDeclared at: clang/include/clang/AST/ExprConcepts.h:130
¶const clang::ASTConstraintSatisfaction&
getSatisfaction() const
const clang::ASTConstraintSatisfaction&
getSatisfaction() constDescription
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() constDeclared at: clang/include/clang/AST/ExprConcepts.h:94
¶bool isSatisfied() const
bool isSatisfied() constDescription
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