Если у меня есть следующий код:
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecisionint main()
{
int128_t a = Func_a()
int128_t b = Func_b()
std::cout << std::max(a, b) << std::endl;
return 0;
}
И если я компилирую с использованием g ++ в Ubuntu, я получаю следующую ошибку:
ошибка: не удается преобразовать ‘const boost :: multiprecision :: number>’ в ‘int64 {aka long long int}’ в назначении
Как правильно сравнить два числа int128_t, чтобы увидеть, какое из них больше?
РЕДАКТИРОВАТЬ: я использую std :: max.
Ваш код (за исключением пропущенных точек с запятой) компилируется и запускается без ошибок.
Однако, согласно вашему сообщению компилятора, я подозреваю, что в
int128_t a = Func_a(); // are you really sure it is int128_t?
левая сторона не является boost::multiprecision::int128_t
, поскольку компилятор говорит, что это int64.
Других решений пока нет …