Thanks Chris, I modified and compiled ok. but subs() make nothing. I have to delare a new subs() function? Is there in source a example? Thanks a lot Marco class covdiff : public indexed{ GINAC_DECLARE_REGISTERED_CLASS(covdiff,indexed) public: idx index; ex arg; ex new_index;<--------I added this covdiff(const ex, idx) ; ex & let_op(size_t i); size_t nops() const; ex op(size_t i) const;} ex & covdiff::let_op(size_t i) {new_index= index;<--- Get index value ensure_if_modifiable(); switch (i){ case 0: return arg; case 1: return new_index;<--- modified default: throw std::range_error("covdiff::op(): no such operand"); } } Quoting Chris Dams <C.Dams@science.ru.nl>:
Dear Marco,
On Thu, 24 Feb 2005 mdias@ift.unesp.br wrote:
test.cpp:88: error: invalid initialization of reference of type 'GiNaC::ex&' from expression of type 'GiNaC::idx'
It is better to make covdiff::index into an ex. What if somebody is going to initialize a covdiff from a varidx? The varidx will get stripped into an idx. I don't think that is what you want.
Best wishes, Chris
_______________________________________________ GiNaC-list mailing list GiNaC-list@ginac.de http://thep.physik.uni-mainz.de/mailman/listinfo/ginac-list
------------------------------------------------- This mail sent through IMP: http://horde.org/imp/