Dear Chris, Chris Dams wrote:
No, actually, just because I was thinking "what could be a nice name for a function that takes the real/imaginary part of something". Do you think that it should be changed? I am not sure whether numeric::real() and numeric::imag() would cause trouble in that case.
Sure the return type would cause trouble. The return type can only change if it's a reference or pointer and if it changes covariantly across the class hierarchy. In the case at hand, it's a numeric object, however, not a refernece. Even changing covariantly would not be a good idea in GiNaC for the very same reason basic::eval() and so many others return an ex object. No, the numeric::real() member function would have to be renamed to make place for a new signature ex numeric::real() (the free function real(const numeric&) could stay, in principle, I guess). This would break compatibility somewhat, however. Alternatively, ex::real() could dispatch to a differently named basic member function, like your real_part(). Not nice. Don't misunderstand me. I'm not advocating it, merely pondering aloud... Cheers -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>