Какие версии gcc поддерживают внутренний тип __int128?
Под gcc docs 128-битные целые числа есть:
Как расширение целочисленный скалярный тип
__int128
поддерживается для целей, у которых целочисленный режим достаточно широк, чтобы содержать 128 бит. Просто пиши__int128
для 128-разрядного целого числа со знаком илиunsigned __int128
для 128-битного целого без знака.В GCC нет поддержки для выражения целочисленной константы типа
__int128
для целей с длинным длинным целым числом шириной менее 128 бит.
Мне было интересно, в какой версии gcc добавлена поддержка этого типа или есть макрос, который можно использовать напрямую для проверки его существования.
2 ответа
Не уверен насчет первой версии, но вы можете проверить __SIZEOF_INT128__
макрос - который (как правило) 16
если определено.
Получить источник и:
git log --reverse --grep='__int128'
чтобы увидеть первое вхождение слова в сообщении фиксации.
Это приводит нас к: https://github.com/gcc-mirror/gcc/commit/6388cfe24f7ecbdc2ba2d4c80638ea6c95ba07c2 который говорит:
Add __int128 keyword.
Затем перечислите все теги, которые содержат коммит с:
git tag --contains 6388cfe24f7ecbdc2ba2d4c80638ea6c95ba07c2
и самый ранний из них:
gcc-4_6_0-release
TODO: есть также более ранняя ссылка на __int128_t
чего я не понял. В чем разница между __int128
а также _int128_t
?