Как использовать максимальную функцию C ++ с 128-битным целым числом

Если у меня есть следующий код:

#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.

-2

Решение

Ваш код (за исключением пропущенных точек с запятой) компилируется и запускается без ошибок.

Однако, согласно вашему сообщению компилятора, я подозреваю, что в

int128_t a = Func_a(); // are you really sure it is int128_t?

левая сторона не является boost::multiprecision::int128_t, поскольку компилятор говорит, что это int64.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]