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