Когда я объявляю такую структуру:
#pragma pack(1)
structure MyStruct{
uint32_t first;
uint8_t second;
};
#pragma pack()
Я, очевидно, хочу, чтобы это заняло 5 байтов памяти. Как тогда поведет себя такой вектор:
std::vector<MyStruct> MyVec;
Или такая карта:
std::map<MyStruct> MyMap;
Будут ли они подчиняться запрошенному выравниванию? Могу ли я заставить структуры STL сделать это?