On 05/02/2018 08:22 PM, Jan Rheinländer wrote:
here's what the compiler says (sorry my system is German):
factor.cpp(2254): error C2440: "Initialisierung": "std::size_t" kann nicht in "GiNaC::numeric" konvertiert werden factor.cpp(2254): note: Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
The code in line 2254 is:
numeric modulus = (vnlst.nops() > 3) ? vnlst.nops() : 3;
It initializes a numeric from the return value of nops(), which is size_t.
So on Windos, where unsigned int is the same as unsigned long, the two existing overloads of numeric ctor are ambiguous. Bummer. It's better to convert these prototypes to uint32_t, uint64_t from <cstdint> than add more overloads for size_t. This way, we need to maintain two overloads, rather than three. -richy.