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