Z3
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_iteratoroperator++ ()
 
cube_iterator operator++ (int)
 
expr_vector const * operator-> () const
 
expr_vector const & operator* () const
 
bool operator== (cube_iterator const &other)
 
bool operator!= (cube_iterator const &other)
 

Detailed Description

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

Constructor & Destructor Documentation

◆ cube_iterator()

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

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

2443 :
2444 m_solver(s),
2445 m_cutoff(cutoff),
2446 m_vars(vars),
2447 m_cube(s.ctx()),
2448 m_end(end),
2449 m_empty(false) {
2450 if (!m_end) {
2451 inc();
2452 }
2453 }

Member Function Documentation

◆ operator!=()

bool operator!= ( cube_iterator const &  other)
inline

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

2472 {
2473 return other.m_end != m_end;
2474 };

◆ operator*()

expr_vector const & operator* ( ) const
inline

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

2467{ return m_cube; }

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

◆ operator++() [1/2]

cube_iterator & operator++ ( )
inline

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

2455 {
2456 assert(!m_end);
2457 if (m_empty) {
2458 m_end = true;
2459 }
2460 else {
2461 inc();
2462 }
2463 return *this;
2464 }

◆ operator++() [2/2]

cube_iterator operator++ ( int  )
inline

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

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

◆ operator->()

expr_vector const * operator-> ( ) const
inline

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

2466{ return &(operator*()); }
expr_vector const & operator*() const
Definition: z3++.h:2467

◆ operator==()

bool operator== ( cube_iterator const &  other)
inline

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

2469 {
2470 return other.m_end == m_end;
2471 };