Z3
 
Loading...
Searching...
No Matches
Public Member Functions
solver::cube_iterator Class Reference

#include <z3++.h>

Public Member Functions

 cube_iterator (solver &s, expr_vector &vars, unsigned &cutoff, bool end)
 
cube_iterator & operator++ ()
 
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 3298 of file z3++.h.

Constructor & Destructor Documentation

◆ cube_iterator()

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

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

3319 :
3320 m_solver(s),
3321 m_cutoff(cutoff),
3322 m_vars(vars),
3323 m_cube(s.ctx()),
3324 m_end(end),
3325 m_empty(false) {
3326 if (!m_end) {
3327 inc();
3328 }
3329 }

Member Function Documentation

◆ operator!=()

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

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

3348 {
3349 return other.m_end != m_end;
3350 }

◆ operator*()

expr_vector const & operator* ( ) const
inlinenoexcept

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

3343{ return m_cube; }

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

◆ operator++() [1/2]

cube_iterator & operator++ ( )
inline

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

3331 {
3332 assert(!m_end);
3333 if (m_empty) {
3334 m_end = true;
3335 }
3336 else {
3337 inc();
3338 }
3339 return *this;
3340 }

◆ operator++() [2/2]

cube_iterator operator++ ( int  )
inline

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

3341{ assert(false); return *this; }

◆ operator->()

expr_vector const * operator-> ( ) const
inline

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

3342{ return &(operator*()); }
expr_vector const & operator*() const noexcept
Definition z3++.h:3343

◆ operator==()

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

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

3345 {
3346 return other.m_end == m_end;
3347 }