D
Size: a a a
ES
bit_cast точно нельзя передавать tuple/pair и вообще структуры. Как минимум потому что есть paddingES
#pragma pack(push, 1) и #pragma pack(pop) или чем-то аналогичным.ES
int &x = foo.field;, где foo — такая упакованная структура, потому что может нарушиться требование к выравниванию ссылок на int.ES
swap(foo.field1, foo.field2);K
ES
apply и type_list и сделать напрямую на таплах. Но тогда может компилироваться сильно медленнее, потому что инстанцировать класс сложнее.ES
K
ES
make_integer_sequence добавляет немного боли, да, но тут не нужен.ES