gmp's c++ interface / mpz_class

Florian Weimer fweimer@redhat.com
Wed Oct 19 10:28:53 GMT 2022


* Pedro Alves:

> Hmm.  Since we don't need infinite precision, it will end up a lot
> more efficient to roll our own type, with fixed (or templated) storage
> size.  Like a simplified version of GCC's wide_int.  Not sure yet
> whether efficiency really matters in practice, but I suspect it does.
>
> I'd still be curious about GMP's native C++ interface.

I tried to use it recently in a hobby project, but it turned out to be a
poor fit because it's not integrated well with C++11 and later features
(no move constructors, no rvalue references).  The unconditional use of
malloc is rather off-putting, too.

I'm contemplating to use tagged integers/pointers as the main
representation, with heap allocation only on demand, maybe using the the
mpn* functions directly, or perhaps copy things out of a long-lasting
mpz_t object that's used as a temporary for arithmetic.

For 72-bit integers, that seems a bit over the top, though.

Thanks,
Florian



More information about the Gdb mailing list