clang 20.0.0git
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
clang::NormalizedConstraint Struct Reference

A normalized constraint, as defined in C++ [temp.constr.normal], is either an atomic constraint, a conjunction of normalized constraints or a disjunction of normalized constraints. More...

#include "clang/Sema/SemaConcept.h"

Public Types

enum  CompoundConstraintKind { CCK_Conjunction , CCK_Disjunction }
 
using CompoundConstraint = llvm::PointerIntPair< NormalizedConstraintPair *, 1, CompoundConstraintKind >
 

Public Member Functions

 NormalizedConstraint (AtomicConstraint *C)
 
 NormalizedConstraint (FoldExpandedConstraint *C)
 
 NormalizedConstraint (ASTContext &C, NormalizedConstraint LHS, NormalizedConstraint RHS, CompoundConstraintKind Kind)
 
 NormalizedConstraint (ASTContext &C, const NormalizedConstraint &Other)
 
 NormalizedConstraint (NormalizedConstraint &&Other)
 
NormalizedConstraintoperator= (const NormalizedConstraint &Other)=delete
 
NormalizedConstraintoperator= (NormalizedConstraint &&Other)
 
bool isAtomic () const
 
bool isFoldExpanded () const
 
bool isCompound () const
 
CompoundConstraintKind getCompoundKind () const
 
NormalizedConstraintgetLHS () const
 
NormalizedConstraintgetRHS () const
 
AtomicConstraintgetAtomicConstraint () const
 
FoldExpandedConstraintgetFoldExpandedConstraint () const
 

Public Attributes

llvm::PointerUnion< AtomicConstraint *, FoldExpandedConstraint *, CompoundConstraintConstraint
 

Friends

class Sema
 

Detailed Description

A normalized constraint, as defined in C++ [temp.constr.normal], is either an atomic constraint, a conjunction of normalized constraints or a disjunction of normalized constraints.

Definition at line 106 of file SemaConcept.h.

Member Typedef Documentation

◆ CompoundConstraint

Definition at line 111 of file SemaConcept.h.

Member Enumeration Documentation

◆ CompoundConstraintKind

Enumerator
CCK_Conjunction 
CCK_Disjunction 

Definition at line 109 of file SemaConcept.h.

Constructor & Destructor Documentation

◆ NormalizedConstraint() [1/5]

clang::NormalizedConstraint::NormalizedConstraint ( AtomicConstraint C)
inline

Definition at line 118 of file SemaConcept.h.

◆ NormalizedConstraint() [2/5]

clang::NormalizedConstraint::NormalizedConstraint ( FoldExpandedConstraint C)
inline

Definition at line 119 of file SemaConcept.h.

◆ NormalizedConstraint() [3/5]

NormalizedConstraint::NormalizedConstraint ( ASTContext C,
NormalizedConstraint  LHS,
NormalizedConstraint  RHS,
CompoundConstraintKind  Kind 
)

Definition at line 1500 of file SemaConcept.cpp.

◆ NormalizedConstraint() [4/5]

NormalizedConstraint::NormalizedConstraint ( ASTContext C,
const NormalizedConstraint Other 
)

Definition at line 1508 of file SemaConcept.cpp.

References clang::C, Constraint, and clang::Other.

◆ NormalizedConstraint() [5/5]

clang::NormalizedConstraint::NormalizedConstraint ( NormalizedConstraint &&  Other)
inline

Definition at line 125 of file SemaConcept.h.

References clang::Other.

Member Function Documentation

◆ getAtomicConstraint()

AtomicConstraint * clang::NormalizedConstraint::getAtomicConstraint ( ) const
inline

Definition at line 152 of file SemaConcept.h.

Referenced by clang::makeCNF(), clang::makeDNF(), and substituteParameterMappings().

◆ getCompoundKind()

CompoundConstraintKind clang::NormalizedConstraint::getCompoundKind ( ) const
inline

Definition at line 144 of file SemaConcept.h.

Referenced by clang::makeCNF(), and clang::makeDNF().

◆ getFoldExpandedConstraint()

FoldExpandedConstraint * clang::NormalizedConstraint::getFoldExpandedConstraint ( ) const
inline

Definition at line 158 of file SemaConcept.h.

Referenced by clang::makeCNF(), clang::makeDNF(), and substituteParameterMappings().

◆ getLHS()

NormalizedConstraint & NormalizedConstraint::getLHS ( ) const

Definition at line 1526 of file SemaConcept.cpp.

References Constraint, and isCompound().

Referenced by clang::makeCNF(), clang::makeDNF(), and substituteParameterMappings().

◆ getRHS()

NormalizedConstraint & NormalizedConstraint::getRHS ( ) const

Definition at line 1531 of file SemaConcept.cpp.

References Constraint, and isCompound().

Referenced by clang::makeCNF(), clang::makeDNF(), and substituteParameterMappings().

◆ isAtomic()

bool clang::NormalizedConstraint::isAtomic ( ) const
inline

Definition at line 138 of file SemaConcept.h.

Referenced by clang::makeCNF(), and clang::makeDNF().

◆ isCompound()

bool clang::NormalizedConstraint::isCompound ( ) const
inline

Definition at line 142 of file SemaConcept.h.

Referenced by getLHS(), getRHS(), and substituteParameterMappings().

◆ isFoldExpanded()

bool clang::NormalizedConstraint::isFoldExpanded ( ) const
inline

Definition at line 139 of file SemaConcept.h.

Referenced by clang::makeCNF(), clang::makeDNF(), and substituteParameterMappings().

◆ operator=() [1/2]

NormalizedConstraint & clang::NormalizedConstraint::operator= ( const NormalizedConstraint Other)
delete

◆ operator=() [2/2]

NormalizedConstraint & clang::NormalizedConstraint::operator= ( NormalizedConstraint &&  Other)
inline

Definition at line 130 of file SemaConcept.h.

References Constraint, and clang::Other.

Friends And Related Function Documentation

◆ Sema

friend class Sema
friend

Definition at line 107 of file SemaConcept.h.

Member Data Documentation

◆ Constraint

llvm::PointerUnion<AtomicConstraint *, FoldExpandedConstraint *, CompoundConstraint> clang::NormalizedConstraint::Constraint

Definition at line 116 of file SemaConcept.h.

Referenced by getLHS(), getRHS(), NormalizedConstraint(), and operator=().


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