public typedefs for gmp malloc/free types
Marc Glisse
marc.glisse at inria.fr
Mon Aug 1 15:39:52 CEST 2011
Hello,
the following is a common use of gmp:
void (*gmp_free) (void *, size_t);
mp_get_memory_functions (NULL, NULL, &gmp_free);
(*gmp_free) (str, strlen (str) + 1);
which is valid in C, compiles with g++, but is invalid in C++ proper. For
this reason, we have in gmpxx.h:
extern "C" {
typedef void (*__gmp_freefunc_t) (void *, size_t);
}
so we can declare:
__gmp_freefunc_t gmp_free;
Now, I have to introduce this same fix in CGAL and in GCC. I believe it
would be good if gmp provided an official, documented typedef for the
types of the malloc/realloc/free functions it uses.
Possibly gmp_malloc_t/gmp_realloc_t/gmp_free_t, but I really don't care
about the name.
What do you think?
--
Marc Glisse
PS: I'm unhappy about the order of the arguments to realloc, but that boat
has sailed long ago.
More information about the gmp-discuss
mailing list