Z3
Public Member Functions
solver::cube_iterator Class Reference

Public Member Functions

 cube_iterator (solver &s, expr_vector &vars, unsigned &cutoff, bool end)
 
cube_iteratoroperator++ ()
 
cube_iterator operator++ (int)
 
expr_vector const * operator-> () const
 
expr_vector const & operator* () const noexcept
 
bool operator== (cube_iterator const &other) const noexcept
 
bool operator!= (cube_iterator const &other) const noexcept
 

Detailed Description

Definition at line 3083 of file z3++.h.

Constructor & Destructor Documentation

cube_iterator ( solver s,
expr_vector vars,
unsigned &  cutoff,
bool  end 
)
inline

Definition at line 3104 of file z3++.h.

3104  :
3105  m_solver(s),
3106  m_cutoff(cutoff),
3107  m_vars(vars),
3108  m_cube(s.ctx()),
3109  m_end(end),
3110  m_empty(false) {
3111  if (!m_end) {
3112  inc();
3113  }
3114  }

Member Function Documentation

bool operator!= ( cube_iterator const &  other) const
inlinenoexcept

Definition at line 3133 of file z3++.h.

3133  {
3134  return other.m_end != m_end;
3135  };
expr_vector const& operator* ( ) const
inlinenoexcept

Definition at line 3128 of file z3++.h.

Referenced by solver::cube_iterator::operator->().

3128 { return m_cube; }
cube_iterator& operator++ ( )
inline

Definition at line 3116 of file z3++.h.

3116  {
3117  assert(!m_end);
3118  if (m_empty) {
3119  m_end = true;
3120  }
3121  else {
3122  inc();
3123  }
3124  return *this;
3125  }
cube_iterator operator++ ( int  )
inline

Definition at line 3126 of file z3++.h.

3126 { assert(false); return *this; }
expr_vector const* operator-> ( ) const
inline

Definition at line 3127 of file z3++.h.

3127 { return &(operator*()); }
expr_vector const & operator*() const noexcept
Definition: z3++.h:3128
bool operator== ( cube_iterator const &  other) const
inlinenoexcept

Definition at line 3130 of file z3++.h.

3130  {
3131  return other.m_end == m_end;
3132  };