clang 22.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 68 of file SemaConcept.h.

Member Typedef Documentation

◆ CompoundConstraint

Definition at line 73 of file SemaConcept.h.

Member Enumeration Documentation

◆ CompoundConstraintKind

Enumerator
CCK_Conjunction 
CCK_Disjunction 

Definition at line 71 of file SemaConcept.h.

Constructor & Destructor Documentation

◆ NormalizedConstraint() [1/5]

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

Definition at line 80 of file SemaConcept.h.

◆ NormalizedConstraint() [2/5]

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

Definition at line 81 of file SemaConcept.h.

◆ NormalizedConstraint() [3/5]

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

Definition at line 1536 of file SemaConcept.cpp.

◆ NormalizedConstraint() [4/5]

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

Definition at line 1544 of file SemaConcept.cpp.

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

◆ NormalizedConstraint() [5/5]

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

Definition at line 87 of file SemaConcept.h.

References clang::Other.

Member Function Documentation

◆ getAtomicConstraint()

AtomicConstraint * NormalizedConstraint::getAtomicConstraint ( ) const

Definition at line 1850 of file SemaConcept.cpp.

References Constraint, and isAtomic().

Referenced by substituteParameterMappings().

◆ getCompoundKind()

NormalizedConstraint::CompoundConstraintKind NormalizedConstraint::getCompoundKind ( ) const

Definition at line 1845 of file SemaConcept.cpp.

References Constraint, and isCompound().

◆ getFoldExpandedConstraint()

FoldExpandedConstraint * NormalizedConstraint::getFoldExpandedConstraint ( ) const

Definition at line 1856 of file SemaConcept.cpp.

References Constraint, and isFoldExpanded().

Referenced by substituteParameterMappings().

◆ getLHS()

NormalizedConstraint & NormalizedConstraint::getLHS ( ) const

Definition at line 1562 of file SemaConcept.cpp.

References Constraint, and isCompound().

Referenced by substituteParameterMappings().

◆ getRHS()

NormalizedConstraint & NormalizedConstraint::getRHS ( ) const

Definition at line 1567 of file SemaConcept.cpp.

References Constraint, and isCompound().

Referenced by substituteParameterMappings().

◆ isAtomic()

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

Definition at line 100 of file SemaConcept.h.

Referenced by getAtomicConstraint().

◆ isCompound()

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

Definition at line 104 of file SemaConcept.h.

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

◆ isFoldExpanded()

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

Definition at line 101 of file SemaConcept.h.

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

References Constraint, and clang::Other.

Friends And Related Function Documentation

◆ Sema

friend class Sema
friend

Definition at line 69 of file SemaConcept.h.

Member Data Documentation

◆ Constraint

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

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