Я пишу набор чистых виртуальных классов, которые действуют как интерфейсы. Идея состоит в том, что код, реализующий такие интерфейсы, может быть построен с другой конфигурацией сборки, компилятором или даже другой реализацией STL для использования кода таким объектом через такой интерфейс.Насколько согласован размер std :: size_t
Обычные старые данные, такие как uint32_t
, стандартизированы как double
и float
. (bool
нет, поскольку в стандарте не указаны его размеры.)
В какой категории std::size_t
? Является ли это чисто функцией архитектуры машины? Например, на 32-битной машине, может ли быть так, что sizeof(std::size_t)
не 4?
В стандарте не указаны размеры 'double' и' float'. –
Я, хотя он сделал * эффективно *, заявив, что это IEEE 32 и 64-битные типы с плавающей запятой. Возможно, я стану 'static_assert', чтобы квалифицировать свое предположение. –
Стандарт не требует, чтобы 'double' и' float' были типами с плавающей точкой IEEE. Если потребовалось, чтобы 'numeric_limits :: is_iec559' было бы лишним, потому что оно всегда было бы правдой. –