Я иногда использую 64-битную арифметику в открытой исходной С++-библиотеке. Я обнаружил, что long long отлично выполняет мою задачу. Даже около 10-летней камеры Solaris можно было скомпилировать ее. И он работает, не запускаясь С#defines в Windows.
Теперь проблема заключается в том, что я получаю жалобы от своих пользователей, потому что они компилируются с помощью GCC -патентных настроек, и GCC настаивает на выдаче предупреждений, что long long не является частью стандарта С++. Вероятно, это правильно, но я не слишком заинтересован в стандарте С++ как таковой, я просто хочу, чтобы мой код работал с таким количеством компиляторов, насколько это возможно.
Итак, мой вопрос двоякий:
- Кто-нибудь может назвать фактические компиляторы С++, которые не поддерживают 64-битные длинные версии?
- Есть ли способ сделать GCC компилировать 64-битную арифметику (на 32-битной платформе) без предупреждений компилятора? (stdint.h не помогает, так как он также зависит от
long long)
P.S.
Если есть платформы, где длинные longs становятся 128 бит или больше, это интересно, но не проблема для меня.