Vector types

Marc Glisse marc.glisse at
Fri Sep 21 23:48:39 CEST 2012

On Sat, 22 Sep 2012, Иван Вайгульт wrote:

> I have found answer on my last question :-)
>> Expressions which by their nature imply intermediate values, like
>> a=b*c+d*e, still use temporaries though.
> That is why I can not use mpz_class.

What this sentence means (never mind if the example is not the best) is 
that if you cannot write the C code such that there is no temporary, then 
the C++ code won't magically find a way. Even when it is possible, it may 
not always find that way. Also, addmul doesn't prevent the use of a 
temporary, it just uses an internal temporary, which tends to be cheaper.

> Can you not use a custom allocator with vector<>?

That would be useless. On the other hand, you can use a custom allocator 
with gmp. This way you can first malloc a large region of memory, then 
initialize the elements of the array in order, and your custom allocator 
can give them consecutive parts of your malloc region.

Marc Glisse

More information about the gmp-discuss mailing list