clang 19.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< std::pair< NormalizedConstraint, NormalizedConstraint > *, 1, CompoundConstraintKind >
 

Public Member Functions

 NormalizedConstraint (AtomicConstraint *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)
 
CompoundConstraintKind getCompoundKind () const
 
bool isAtomic () const
 
NormalizedConstraintgetLHS () const
 
NormalizedConstraintgetRHS () const
 
AtomicConstraintgetAtomicConstraint () const
 

Public Attributes

llvm::PointerUnion< AtomicConstraint *, 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 81 of file SemaConcept.h.

Member Typedef Documentation

◆ CompoundConstraint

Definition at line 86 of file SemaConcept.h.

Member Enumeration Documentation

◆ CompoundConstraintKind

Enumerator
CCK_Conjunction 
CCK_Disjunction 

Definition at line 84 of file SemaConcept.h.

Constructor & Destructor Documentation

◆ NormalizedConstraint() [1/4]

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

Definition at line 92 of file SemaConcept.h.

◆ NormalizedConstraint() [2/4]

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

Definition at line 93 of file SemaConcept.h.

◆ NormalizedConstraint() [3/4]

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

Definition at line 99 of file SemaConcept.h.

References clang::Other.

◆ NormalizedConstraint() [4/4]

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

Definition at line 110 of file SemaConcept.h.

References clang::Other.

Member Function Documentation

◆ getAtomicConstraint()

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

Definition at line 140 of file SemaConcept.h.

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

◆ getCompoundKind()

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

Definition at line 123 of file SemaConcept.h.

Referenced by makeCNF(), and makeDNF().

◆ getLHS()

NormalizedConstraint & clang::NormalizedConstraint::getLHS ( ) const
inline

Definition at line 130 of file SemaConcept.h.

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

◆ getRHS()

NormalizedConstraint & clang::NormalizedConstraint::getRHS ( ) const
inline

Definition at line 135 of file SemaConcept.h.

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

◆ isAtomic()

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

Definition at line 128 of file SemaConcept.h.

Referenced by makeCNF(), 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 115 of file SemaConcept.h.

References Constraint, and clang::Other.

Friends And Related Function Documentation

◆ Sema

friend class Sema
friend

Definition at line 82 of file SemaConcept.h.

Member Data Documentation

◆ Constraint

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

Definition at line 90 of file SemaConcept.h.

Referenced by operator=().


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