Request for C++ interface doc improvement

Jerome L Quinn jlquinn at
Thu Jul 31 14:53:35 UTC 2014

Marc Glisse <marc.glisse at> wrote on 07/31/2014 02:07:02 AM:

> From: Marc Glisse <marc.glisse at>
> To: Jerome L Quinn/Watson/IBM at IBMUS
> Cc: gmp-bugs at
> Date: 07/31/2014 02:07 AM
> Subject: Re: Request for C++ interface doc improvement
> — Function: explicit mpz_class::mpz_class (const char *s, int base = 0)
> — Function: explicit mpz_class::mpz_class (const string& s, int base = 0)
> "explicit" is there...

Ah, this must have been added more recently.  I have gmp 4.3.1 on CentOS 6,
and "explicit" isn't there.

> > I'd like to suggest adding to the docs something like the following:
> >
> >
> > Conversions from `string' or `char*' do not happen automatically.
> > Construction must be explicit.  For example,
> >
> >    mpz_class a("245");
> You can also write that as:
> auto a = 245_mpz;

Unfortunately, I'm still in C++98 land, so that's not yet an option.

> Where in the docs do you think some extra text would help?

C++ General Interface


   Note that `bool' is not accepted directly, but must be explicitly
cast to an `int' first.  This is because C++ will automatically convert
any pointer to a `bool', so if GMP accepted `bool' it would make all
sorts of invalid class and pointer combinations compile but almost
certainly not do anything sensible.

<insert text here>

   Conversions back from the classes to standard C++ types aren't done
automatically, instead member functions like `get_si' are provided (see
the following sections for details).

More information about the gmp-bugs mailing list