Страница 2 из 2

Re: Есть ли такой тип?

Добавлено: 25 ноя 2015, 16:24
Romeo
Нет, 128-битное число не достаточно. Там речь идёт о тысячах байт.

Re: Есть ли такой тип?

Добавлено: 25 ноя 2015, 18:13
Сионист
Absurd писал(а):https://gmplib.org/
Это то здесь при чём? Где у меня хоть слово о переменной в рантейме точности?

Re: Есть ли такой тип?

Добавлено: 25 ноя 2015, 18:24
Absurd
Сионист писал(а):Это то здесь при чём?

В этой библиотеке есть тип mpz_class который может хранить целые числа любой разрядности. Вообще любой.

Re: Есть ли такой тип?

Добавлено: 25 ноя 2015, 18:52
Absurd
Сионист писал(а): Где у меня хоть слово о переменной в рантейме точности?
Целочисленные типы всегда точны. Точность у них в рантайме не меняется.

Re: Есть ли такой тип?

Добавлено: 25 ноя 2015, 19:18
Сионист
WinMain писал(а):Как я понял из всего сказанного, ему нужен тип целого числа с разрядностью выше 32.
Это может быть long long или __int64 в Visual C++. У них разрядность 64 бита.
Можно ещё использовать __m128 в разных модификациях - это 128-битные числа.
Может быть и ровно 32, а может быть не хватит и 128. Я же не знаю заранее, как будет меняться разрядность платформ, которые только будут созданы в будущем, и придётся ли перекомпилировать для win32. Если бы предполагалась кроскомпиляция на спектрум, то в версии для спектрум 48K можно и 16 бит, а в версии для спектрум 128 не менее 17-ти бит, а с учётом адресации байтами не менее 24-х (на спектруме водятся типы и по 5 байт, так почему и не 3?). Но для win64 не менее 64-х бит, а если разрядность будет расти, то может быть и 256. Важна не разрядность, а её достаточность для представления количества динамических безымянных переменных, возможного на платформе, целевой для конкретной версии. Спектрум и i80286 поддерживать не надо, они слишком слабы по характеристикам и всё равно не справятся. Да и у пользователя стоять точно не будут. И не виндузячие они к тому же. Но как будет меняться разрядность винды в будущем, я ведь не знаю. А надо одним именем типа гарантировать достаточную на любой версии разрядность. Задача - хранить количество безымянных переменных.

Re: Есть ли такой тип?

Добавлено: 25 ноя 2015, 19:25
Absurd
Сионист писал(а):Может быть и ровно 32, а может быть не хватит и 128. Я же не знаю заранее, как будет меняться разрядность платформ, которые только будут созданы в будущем, и придётся ли перекомпилировать для win32.
uintmax_t
Сионист писал(а): Если бы предполагалась кроскомпиляция на спектрум
Сколько вам лет? Если действительно уже за 30, то вы удивительный человек.

Re: Есть ли такой тип?

Добавлено: 25 ноя 2015, 19:29
Сионист
Romeo писал(а):Нет, 128-битное число не достаточно. Там речь идёт о тысячах байт.
Для тысяч вполне хватит 16-ти. А для миллионов? Миллиардов? Триллионов? Я не могу сейчас предсказать прожорливость будущих версий. Но при этом одна из функций должна принимать всё подряд, включая WPARAM, LPARAM и даже HWND. И ей же нужны данные и искомого типа, но при этом она должна с данными искомого типа поступать принципиально иначе, чем с данными типов WPARAM, LPARAM и HWND. Вот ради этой функции и нужна замена типу size_t, но такая, чтоб не менять имя типа в зависимости от разрядности. Значит стандартного нет? Тогда оставляю оболочку над size_t. И не надо кивать на мою же критику оболочек, писать свои компиляторы с двумя встроенными именами мемсайза - вполне трудоёмкий путь решения этой не такой уж сложной задачи.

Re: Есть ли такой тип?

Добавлено: 26 ноя 2015, 12:44
Romeo
Сионист, я не знаю, зачем ты заквотил моё последнее сообщение. Оно не тебе адресовалось.

Моё предложение по поводу решения твой проблемы было на предыдущей странице. Так же у нас есть решение от Absurd. Тебе мало двух? Почему вместо того, чтобы сесть за реализацию или хотя бы проверку предложенных идей, ты продолжаешь неистово спорить о каких-то слабосвязанных с указанной проблемой вещах?

Re: Есть ли такой тип?

Добавлено: 26 ноя 2015, 16:18
Сионист
Вот именно, что они не связаны с проблемой вообще. Но зачем то предлагаются в качестве решения. Вы когда на дачи едете, покупаете билет на БЕЛАЗ? Для какого хелла здесь переменная в рантайме, но ни как не связанная с платформой точность, когда нужно как раз целое, но платформенно зависимой разрядности? Тем более зачем здесь тип, предназначенный для хранения всего подряд, включая строки, болены и много другой всякости? Мне нужно только число. И только целое. И что то я не вижу здесь ни какой мифической предыдущей страницы. И вообще решение то действительно уже есть, причём, до темы. Просто я хотел узнать, есть ли стандартная альтернатива size_t, которая бы перегружалась отдельно от WPARAM. Но раз нет, оставляю, как есть.