X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fexpairseq.h;h=f789514fe02bdf243f85b24494d2150f2beebefc;hp=b6f9bc7e17fc1fbd7843738f5505a7e7b169fb05;hb=e8c9b4a51a1c8f1230b023b0af6a708881ef23d3;hpb=5ef801553eb39aed7bd2df9dd1aff9d752c3ea9d diff --git a/ginac/expairseq.h b/ginac/expairseq.h index b6f9bc7e..f789514f 100644 --- a/ginac/expairseq.h +++ b/ginac/expairseq.h @@ -25,6 +25,7 @@ #include #include +#include // CINT needs to work properly with and #include @@ -66,11 +67,10 @@ public: expairseq(const ex & lh, const ex & rh); expairseq(const exvector & v); expairseq(const epvector & v, const ex & oc); - expairseq(epvector * vp, const ex & oc); // vp will be deleted + expairseq(std::auto_ptr, const ex & oc); // functions overriding virtual functions from base classes public: - void print(const print_context & c, unsigned level = 0) const; unsigned precedence() const {return 10;} bool info(unsigned inf) const; size_t nops() const; @@ -90,7 +90,7 @@ protected: // new virtual functions which can be overridden by derived classes protected: virtual ex thisexpairseq(const epvector & v, const ex & oc) const; - virtual ex thisexpairseq(epvector * vp, const ex & oc) const; + virtual ex thisexpairseq(std::auto_ptr vp, const ex & oc) const; virtual void printseq(const print_context & c, char delim, unsigned this_precedence, unsigned upper_precedence) const; @@ -110,6 +110,8 @@ protected: // non-virtual functions in this class protected: + void do_print(const print_context & c, unsigned level) const; + void do_print_tree(const print_tree & c, unsigned level) const; void construct_from_2_ex_via_exvector(const ex & lh, const ex & rh); void construct_from_2_ex(const ex & lh, const ex & rh); void construct_from_2_expairseq(const expairseq & s1, @@ -144,9 +146,9 @@ protected: epvector::const_iterator last_non_zero); #endif // EXPAIRSEQ_USE_HASHTAB bool is_canonical() const; - epvector * expandchildren(unsigned options) const; - epvector * evalchildren(int level) const; - epvector * subschildren(const exmap & m, unsigned options = 0) const; + std::auto_ptr expandchildren(unsigned options) const; + std::auto_ptr evalchildren(int level) const; + std::auto_ptr subschildren(const exmap & m, unsigned options = 0) const; // member variables