Название немного сбивает с толку, поэтому я объясню немного больше на примерах. Просто примечание: я анализирую формат файла. Скажем, у нас есть такая структура:
struct example
{
typeA a;
typeB b;
typeX x;
typeY y;
typeZ z;
};
Пока все хорошо. Теперь проблема в том, что typeX
, typeY
и typeZ
могут различаться по размеру. В зависимости от флагов в заголовке файла (метаданных) они могут быть размером два или четыре байта. Другое дело, что есть еще несколько таких структур (около 40). Каждый из них использует typeX
, typeY
, typeZ
. Некоторые из них все, некоторые только один или два. И, наконец, большинство из них являются необязательными, поэтому может использоваться только четыре или пять структур, или 20 или 30 ...
Я хотел бы знать, есть ли у кого-нибудь идея, как хранить такой изменяющийся набор данных. Я думал об использовании шаблонов, но не знаю, правильно ли это.
РЕДАКТИРОВАТЬ: уточнить больше: память не является большой проблемой, поэтому я, вероятно, могу позволить себе тратить немного места. Если typeX составляет четыре байта, то это так для всех структур. Однако они не синхронизированы, поэтому typeX может быть 4 байта, typeZ может быть 2. Большинство структур может использоваться несколько раз, поэтому может быть 50 структур example1, 10 структур example2 и т. Д.