Function return values in GMP? (James Wheaton)
Décio Luiz Gazzoni Filho
decio at decpp.net
Thu Mar 2 17:08:25 CET 2006
On Mar 2, 2006, at 10:21 AM, Hans Aberg wrote:
> On 2 Mar 2006, at 00:33, Décio Luiz Gazzoni Filho wrote:
>>
>> Actually that is a well known problem with operator overloading in C+
>> + and which has been solved (though not 100% satisfactorily) using
>> the technique of `expression templates', which by the way is
>> implemented in the C++ wrapper for GMP.
>
> This does not solve the problem, because templates just provides a
> static (compile time only) programming
Expression templates solve the problem for 99.9% of users. Now
certainly there are the hardcore abstract OO types who want to do
everything dynamically. Still, I don't see why it'd be impossible to
use expression templates and dynamic typing simultaneously. Meaning
you could write code like this:
----------
base_t* x = new derived_t;
base_t* y = new derived_t;
*x = *x + *y;
----------
and get the correct behavior without temporary generation. Of course,
it'd require some modifications from, say, the C++ GMP wrapper in
order to generalize it, but it's possible. Now writing code where the
expressions themselves are generated at runtime, say a calculator
parsing user input, might indeed not work -- I haven't thought enough
about it to be sure.
Décio
More information about the gmp-discuss
mailing list