Всё работает, кроме двух тестов int128_ut и i128_type_traits_ut (пока что закомментировал), а именно, не компилируются вызовы std::signbit.
Возможно, у вас внутри используется libc++, тогда понятно, почему раньше не было проблем: реализация от llvm только делает проверки на std::is_integral, std::is_signed и ещё сравнивает, меньше ли число нуля. TInteger128 всё это умеет делать.
А вот реализация libstdc++ проверяет только свой внутренний __is_integer, а он специализирован для стандартных типов + расширения gcc, поэтому он отвергает TInteger128.
Так ли нужна здесь проверка именно std::signbit? По идее, хотелось бы видеть тест френдовой функции signbit, а не из стандартной библиотеки.
Вот так вот сложно сказать, можно ли заменить std::signbit на signbit. Если тест на compatibility, то нет. Можешь завести issue, но эти тесты не прям важны, int128 и так только в тестах используется
Issue #313
Всё работает, кроме двух тестов
int128_ut
иi128_type_traits_ut
(пока что закомментировал), а именно, не компилируются вызовыstd::signbit
. Возможно, у вас внутри используется libc++, тогда понятно, почему раньше не было проблем: реализация от llvm только делает проверки наstd::is_integral
,std::is_signed
и ещё сравнивает, меньше ли число нуля.TInteger128
всё это умеет делать. А вот реализацияlibstdc++
проверяет только свой внутренний__is_integer
, а он специализирован для стандартных типов + расширения gcc, поэтому он отвергаетTInteger128
.Так ли нужна здесь проверка именно
std::signbit
? По идее, хотелось бы видеть тест френдовой функцииsignbit
, а не из стандартной библиотеки.