From: fred Date: Fri, 25 Jul 1997 12:47:21 +0000 (+0000) Subject: lilypond-0.0.76 X-Git-Tag: release/1.5.59~6114 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f326c6c8bc344fea8e3b1389e556cd97406e10d3;p=lilypond.git lilypond-0.0.76 --- diff --git a/flower/include/acursor.hh b/flower/include/acursor.hh new file mode 100644 index 0000000000..3664b8245f --- /dev/null +++ b/flower/include/acursor.hh @@ -0,0 +1,58 @@ +/* + acursor.hh -- declare ACursor, PACursor + + source file of the Flower Library + + (c) 1997 Han-Wen Nienhuys +*/ + + +#ifndef ACURSOR_HH +#define ACURSOR_HH + +template +class ACursor +{ +protected: + int idx_; + Array &arr_; +public: + ACursor(ACursor const& s) + :arr_(s.arr_) + { + idx_ = s.idx_; + } + ACursor(Array const &arr) + arr_((Array&)arr) + { + idx_ =0; + } + T thing() const { + return arr_[idx_]; + } + T& thing() { return arr_[idx_]; } + T& operator++(int) { + T&t = thing(); + idx_ ++; + return t; + } + bool ok() { return idx_ >=0 && idx_ < arr_.size(); } +}; + + +template +class PACursor : public ACursor +{ +public: + PACursor(Link_array l) + : ACursor(l) + { + } + T* ptr() { return arr_[idx_]; } + T *operator->() { + return ptr(); + } + +}; + +#endif // ACURSOR_HH