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 105 of file SemaConcept.h.

Member Typedef Documentation

◆ CompoundConstraint

Definition at line 110 of file SemaConcept.h.

Member Enumeration Documentation

◆ CompoundConstraintKind

Enumerator
CCK_Conjunction 
CCK_Disjunction 

Definition at line 108 of file SemaConcept.h.

Constructor & Destructor Documentation

◆ NormalizedConstraint() [1/5]

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

Definition at line 117 of file SemaConcept.h.

◆ NormalizedConstraint() [2/5]

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

Definition at line 118 of file SemaConcept.h.

◆ NormalizedConstraint() [3/5]

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

Definition at line 1488 of file SemaConcept.cpp.

◆ NormalizedConstraint() [4/5]

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

Definition at line 1496 of file SemaConcept.cpp.

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

◆ NormalizedConstraint() [5/5]

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

Definition at line 124 of file SemaConcept.h.

References clang::Other.

Member Function Documentation

◆ getAtomicConstraint()

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

Definition at line 151 of file SemaConcept.h.

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

◆ getCompoundKind()

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

Definition at line 143 of file SemaConcept.h.

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

◆ getFoldExpandedConstraint()

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

Definition at line 157 of file SemaConcept.h.

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

◆ getLHS()

NormalizedConstraint & NormalizedConstraint::getLHS ( ) const

Definition at line 1514 of file SemaConcept.cpp.

References Constraint, and isCompound().

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

◆ getRHS()

NormalizedConstraint & NormalizedConstraint::getRHS ( ) const

Definition at line 1519 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 137 of file SemaConcept.h.

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

◆ isCompound()

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

Definition at line 141 of file SemaConcept.h.

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

◆ isFoldExpanded()

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

Definition at line 138 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 129 of file SemaConcept.h.

References Constraint, and clang::Other.

Friends And Related Function Documentation

◆ Sema

friend class Sema
friend

Definition at line 106 of file SemaConcept.h.

Member Data Documentation

◆ Constraint

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

Definition at line 115 of file SemaConcept.h.

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


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