It seems map
cannot compare two mpz_t
instances.
According to the C++ reference maps are implemented as binary search trees. Therefore if elements cannot be compared search is impossible.
Adding a comparer fixed this problem:
struct mpzCompare
{
bool operator() (const mpz_t val1, const mpz_t val2) const
{
return mpz_cmp(val1, val2) > 0;
}
};
std::map<mpz_t, uint, mpzCompare> leftSide;