cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

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

Open apolukhin opened 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +7, -3 Автор идеи: dix75

Добавить новый proposal и/или дополнить существующий proposal стандартными функциями

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

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

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

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
     > {};
apolukhin commented 3 years ago

dix75, 7 июня 2017, 16:48 Я немного поспешил, добавив std::sin и std::сos (жаль что подправить нельзя). Также в список можно добавить

std::ilogb
std::signbit

Клеванец Игорь, 7 июня 2017, 17:11 Хорошая мысль Хотим оформить математические функции отдельным предложением

eabesea, 7 июня 2017, 17:48 По хорошему все или большая часть функций над int должны работать над wide_int