Z3
Loading...
Searching...
No Matches
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 3269 of file z3++.h.

Constructor & Destructor Documentation

◆ cube_iterator()

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

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

3290 :
3291 m_solver(s),
3292 m_cutoff(cutoff),
3293 m_vars(vars),
3294 m_cube(s.ctx()),
3295 m_end(end),
3296 m_empty(false) {
3297 if (!m_end) {
3298 inc();
3299 }
3300 }

Referenced by solver::cube_generator::begin(), solver::cube_generator::end(), operator!=(), operator++(), operator++(), and operator==().

Member Function Documentation

◆ operator!=()

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

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

3319 {
3320 return other.m_end != m_end;
3321 };

◆ operator*()

expr_vector const & operator* ( ) const
inlinenoexcept

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

3314{ return m_cube; }

Referenced by operator->().

◆ operator++() [1/2]

cube_iterator & operator++ ( )
inline

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

3302 {
3303 assert(!m_end);
3304 if (m_empty) {
3305 m_end = true;
3306 }
3307 else {
3308 inc();
3309 }
3310 return *this;
3311 }

◆ operator++() [2/2]

cube_iterator operator++ ( int )
inline

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

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

◆ operator->()

expr_vector const * operator-> ( ) const
inline

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

3313{ return &(operator*()); }
expr operator*(expr const &a, expr const &b)
Definition z3++.h:1978

◆ operator==()

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

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

3316 {
3317 return other.m_end == m_end;
3318 };