std :: tuple sizeof, это пропущенная оптимизация?

Я проверил все основные компиляторы, и sizeof(std::tuple<int, char, int, char>) это 16 для всех них. Предположительно они просто приводят элементы в порядок в кортеже, поэтому некоторое пространство теряется из-за выравнивания.

Если кортеж хранимых элементов внутренне похож на: int, int, char, char, то его размер может быть 12.

Возможна ли для реализации реализация, или это запрещено каким-то правилом в стандарте?

65
задан Daniel Langr 3 September 2019 в 13:00
поделиться