> On 6 Jun 2020, at 06:28, Mihai Preda <mpr...@gmail.com> wrote: > > At this point the C++ compiler on windows (where long is 32-bit) > reports errors, see at the end. The problem is that the set of > constructors does not include one taking a 64-bit integer: > > #define __GMPXX_DEFINE_ARITHMETIC_CONSTRUCTORS \ > __gmp_expr(signed char c) { init_si(c); } \ > __gmp_expr(unsigned char c) { init_ui(c); } \ > __gmp_expr(signed int i) { init_si(i); } \ > __gmp_expr(unsigned int i) { init_ui(i); } \ > __gmp_expr(signed short int s) { init_si(s); } \ > __gmp_expr(unsigned short int s) { init_ui(s); } \ > __gmp_expr(signed long int l) { init_si(l); } \ > __gmp_expr(unsigned long int l) { init_ui(l); } \ > __gmp_expr(float f) { init_d(f); } \ > __gmp_expr(double d) { init_d(d); } > > Among all in the list above, none takes a uint64_t or int64_t.
Those types are just typedefs to the appropriate C types [1], and with those compilers one would have to use [unsigned/signed] long long [2], which is not on the list. So it would suffice adding those, it would seem. 1. https://en.cppreference.com/w/cpp/types/integer 2. https://en.cppreference.com/w/cpp/language/types _______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs