Дополнить wide_int стандартными функциями

dix75
dix75

Существует proposal wide_int Template Class расширяющий стандартный ряд типов добавляя типы больших чисел.

В связи с этим особо актуально становится наличие сопутствующих математических функций, возможно constexpr , таких как:

  • std::abs
  • std::sin
  • std::cos
  • std::pow
  • и др.

А также весьма полезным будет добавление следующей шаблонной структуры

template< class T >
struct is_wide_int final
     : std::integral_constant<
         bool,
         std::is_same<std::int128_t, typename std::remove_cv<T>::type>::value   ||
         std::is_same<std::int256_t, typename std::remove_cv<T>::type>::value   ||
         std::is_same<std::int512_t, typename std::remove_cv<T>::type>::value   ||
         std::is_same<std::uint128_t, typename std::remove_cv<T>::type>::value  ||
         std::is_same<std::uint256_t, typename std::remove_cv<T>::type>::value  ||
         std::is_same<std::uint512_t, typename std::remove_cv<T>::type>::value
     > {};
3
рейтинг
3 комментария
dix75
Я немного поспешил, добавив std::sin и std::сos (жаль что подправить нельзя).
Также в список можно добавить
std::ilogb
std::signbit
dix75
Клеванец  Игорь
Хорошая мысль
Хотим оформить математические функции отдельным предложением
Клеванец Игорь
eabesea
По хорошему все или большая часть функций над int должны работать над wide_int
eabesea
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).