gmp's c++ interface / mpz_class

Pedro Alves pedro@palves.net
Fri Oct 14 18:11:39 GMT 2022


Hi!

Zoran and I found a potential need for an integer type with precision of 64-bit + 8-bit, in order to
store bit offsets that can span a whole 64-bits address space.  Instead of rolling our own,
I guess it makes sense to use libgmp, since, well, we already depend on it.  I see that we have:

 /* A class to make it easier to use GMP's mpz_t values within GDB.  */

 struct gdb_mpz
 {

In gdb/gmp-utils.h.  However, we need do to arithmetic on the type, and this wrapper
type doesn't implement operator+, operator-, etc, etc.  I guess we could add those,
as wrappers around mpz_add, etc.  Or use raw mpz_add, etc. directly.  However, I just found
out that GMP already has its own C++ interface:

 https://gmplib.org/manual/C_002b_002b-Interface-General

Before we explore this further, is there an already known reason we shouldn't be using
that interface?

Pedro Alves


More information about the Gdb mailing list