* a thing a proxy class.) */
class ex
{
- friend class basic;
+ friend class archive_node;
+ friend bool are_ex_trivially_equal(const ex &, const ex &);
+ template<class T> friend const T &ex_to(const ex &);
+ template<class T> friend bool is_a(const ex &);
+ template<class T> friend bool is_exactly_a(const ex &);
// member functions
* symbols and other parser errors will throw an exception. */
ex(const std::string &s, const ex &l);
- // functions overriding virtual functions from bases classes
- // none
-
- // new virtual functions which can be overridden by derived classes
- // none
-
// non-virtual functions in this class
public:
void swap(ex & other);
ex primpart(const symbol &x) const;
ex primpart(const symbol &x, const ex &cont) const;
ex normal(int level = 0) const;
- ex to_rational(lst &repl_lst) const;
- ex smod(const numeric &xi) const;
+ ex to_rational(lst &repl_lst) const { return bp->to_rational(repl_lst); }
+ ex smod(const numeric &xi) const { return bp->smod(xi); }
numeric max_coefficient(void) const;
ex collect(const ex & s, bool distributed = false) const { return bp->collect(s, distributed); }
ex eval(int level = 0) const { return bp->eval(level); }
// member variables
public:
- basic *bp; ///< pointer to basic object managed by this
+ basic *bp; ///< pointer to basic object managed by this, direct manipulation deprecated
#ifdef OBSCURE_CINT_HACK
static basic * last_created_or_assigned_bp;
static basic * dummy_bp;