Unbounded integers

zamazan4ik@tut.by
zamazan4ik@tut.by

Уже есть пропозал про wide_int: https://stdcpp.ru/proposals/531b7d66-037b-48b7-8262-eb9c0c1f7535 . Но он про числа, размер которых нам известен на стадии компиляции.

 

Unbounded integers могут расширяться в рантайме на столько, сколько позволяет нам ОС и способны вместить сколь угодно большие числа. Вот текст оригинального предложения: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4038.html

 

К сожалению, автор (Pete Becker), судя по всему, забросил пропозал на произвол судьбы. Хотелось бы возродить это дело. Но с некоторыми поправками к нему:

  • Выкинуть из предложения класс bits, так как это уже реализуется другим предложением: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0237r9.pdf . Вместо этого своего класса добавить просто в отдельном предложении взаимодействие с классами для работы с битами из бумаги выше.
  • Переделать специализацию std::hash (сейчас делается по-другому)
  • Вместо класса integer_data_proxy просто использовать вектор с возможностью выбора аллокатора
  • Добавить ravlue версии к алгоритмам
  • pow, sqrt, sqr и так далее выбросить из методов класса и сделать перегрузки как свободные функции. Также посмотреть, к каким математическим функциям нужны ещё перегрузки и описать всё это отдельной бумагой
  • выбросить метод is_zero

 

Есть какие-то ещё идеи по улучшению?

21
рейтинг
Нет комментариев
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения