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_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 3127 of file z3++.h.

Constructor & Destructor Documentation

◆ cube_iterator()

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

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

3148 :
3149 m_solver(s),
3150 m_cutoff(cutoff),
3151 m_vars(vars),
3152 m_cube(s.ctx()),
3153 m_end(end),
3154 m_empty(false) {
3155 if (!m_end) {
3156 inc();
3157 }
3158 }

Referenced by operator!=(), operator++(), operator++(), and operator==().

Member Function Documentation

◆ operator!=()

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

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

3177 {
3178 return other.m_end != m_end;
3179 };

◆ operator*()

expr_vector const & operator* ( ) const
inlinenoexcept

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

3172{ return m_cube; }

Referenced by operator->().

◆ operator++() [1/2]

cube_iterator & operator++ ( )
inline

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

3160 {
3161 assert(!m_end);
3162 if (m_empty) {
3163 m_end = true;
3164 }
3165 else {
3166 inc();
3167 }
3168 return *this;
3169 }

◆ operator++() [2/2]

cube_iterator operator++ ( int )
inline

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

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

◆ operator->()

expr_vector const * operator-> ( ) const
inline

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

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

◆ operator==()

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

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

3174 {
3175 return other.m_end == m_end;
3176 };