3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-19 12:23:38 +00:00

wip: add recursive functions

This commit is contained in:
Simon Cruanes 2017-11-07 15:57:27 +01:00
parent fba22d2fac
commit d5e134dd94
19 changed files with 1362 additions and 4 deletions

View file

@ -31,6 +31,7 @@ public:
void reset() { std::for_each(m_vector.begin(), m_vector.end(), delete_proc<T>()); m_vector.reset(); }
void push_back(T * ptr) { m_vector.push_back(ptr); }
void pop_back() { SASSERT(!empty()); set(size()-1, 0); m_vector.pop_back(); }
T * back() const { return m_vector.back(); }
T * operator[](unsigned idx) const { return m_vector[idx]; }
void set(unsigned idx, T * ptr) {
if (m_vector[idx] == ptr)
@ -51,6 +52,13 @@ public:
push_back(0);
}
}
//!< swap last element with given pointer
void swap_back(scoped_ptr<T> & ptr) {
SASSERT(!empty());
T * tmp = ptr.detach();
ptr = m_vector.back();
m_vector[m_vector.size()-1] = tmp;
}
};
#endif