типы — 64-битные целые числа и старые компиляторы C ++

Я хочу использовать 64-битные целые числа в моем коде C ++. Я понимаю, что могу либо #include <cstdint> а затем объявить uint64_t или использовать unsigned long long (или эквивалент для подписанных версий).

Однако, похоже, что поддержка этого не была добавлена ​​до C++11 и я хотел бы, чтобы мой код был совместим с компиляторами, которые не имеют полной поддержки C ++ 11.

Что такое хороший переносимый способ поддержки 64-битных целых чисел в C ++?

6

Решение

uint64_t является:

Необязательный: Эти typedefs не определены, если нет типов с такими
характеристики существуют.

как вы можете прочитать в ссылка.


От Должен ли я использовать long long или int64_t для переносимого кода?:

Типы long long а также unsigned long long являются стандартными типами C и C ++, каждый из которых содержит не менее 64 бит. Все компиляторы, о которых я знаю, предоставляют эти типы, кроме, возможно, когда в -pedantic режим, но в этом случае int64_t или же uint64_t также не будет доступен с компиляторами до C ++ 2011. «


Какую дату поддерживал g ++ / clang? long long/int64_t от?

поскольку GCC 4.3 (ака 5 марта 2008 г.).

Как отметил Давид Альварес.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]