C ++ F32 включить файл? - PullRequest
       32

C ++ F32 включить файл?

0 голосов
/ 23 января 2012

Я только начал писать свой собственный менеджер памяти, но для этого мне нужен какой-то тип подключаемого файла для создания f32 (целое число с плавающей запятой).

У меня есть #include <cstdint> вмоя программа уже, но я не уверен, что мне нужно для F32 или I32 в этом отношении.

1 Ответ

2 голосов
/ 23 января 2012

AFAIK, на данный момент не существует стандартизированного способа получения типов с плавающей запятой фиксированной ширины - я думаю, потому что, в отличие от целочисленных типов, float и double более или менее везде одинаковы (32 бита float, 64 бит double, с отдельными типами для "странных" типов FP).

Тем не менее, если вы хотите быть более уверенным, вы можете сделать статическое утверждение перед созданием typedef:

#include <climits>
static_assert(sizeof(float)*CHAR_BIT==32, "float is not 32 bit on this architecture, fix the f32 typedef.");
typedef float f32;

Таким образом, на «нормальных» платформах это будет работать безупречно, в то время как на «странных» платформах он не сможет скомпилироваться, что даст вам возможность добавить специфичную для платформы typedef.

Что касается I32, достаточно включить <cstdint> и создать свой typedef:

#include <cstdint>
typedef std::int32_t i32;
...