Я предполагаю, что info_t
- это формат данных, которые вы пытаетесь проанализировать, поэтому вы не можете его изменить.
Есть ли какая-то конкретная причина, по которой использование класса-оболочки не поддается управлению?Кажется, это именно та проблема, где ООП полезен.Если вам не нужен класс, интерфейс которого совместим с info_t
, вы можете использовать следующую компоновку:
struct info_t {
UINT32 &signature;
UINT32 * const elements;
UINT32 &options;
};
Затем необходимо создать конструктор, который устанавливает поля, указывающие на правильные местоположения в вашемвходные данные.
Если ваши входные данные задаются как указатель на массив UINT32, конструктор может выглядеть примерно так:
info_t(UINT32 *data, size_t number_of_elements) :
signature (*data),
elements (data+1),
options (*(data+number_of_elements+1)) {}
Если вы хотите, чтобы data
был освобожденкогда экземпляр info_t
выходит из области видимости, вы можете сделать это в конструкторе.