Пересылка структурной матрицы в стиле C конструкторам матрицы объектов одинакового размера.C++

Программы на C++. Форум разработчиков
Anonymous
Пересылка структурной матрицы в стиле C конструкторам матрицы объектов одинакового размера.

Сообщение Anonymous »

Предположим, у меня есть матрица элементов в стиле C

Код: Выделить всё

typedef struct _RAW_DATA{
int a;
int b;
}RAW_DATA;
внутри шаблонного класса, определяющего размер матрицы:

Код: Выделить всё

template
struct ProcessedData{
typedef RAW_DATA INPUT_TYPE[TDim][TDim];
};
В вышеупомянутом классе мне также нужна двумерная матрица того же размера, содержащая обработанные данные для каждого элемента INPUT_TYPE, но некоторые элементы должны быть константными:

Код: Выделить всё

template
struct ProcessedData{
...
struct ProcessedElem{
const int a1;
const int a2;
const int b1;
const int b2;

int otherValue1;
int otherValue2;

ProcessedElem(const RAW_DATA &RawData) : ... /*do member initialization*/ {}
};

ProcessedElem prcessedData[TDim][TDim]
};
В конструкторе ProcessedData я получаю входную матрицу:

Код: Выделить всё

template
struct ProcessedData{
...
ProcessedData(const INPUT_TYPE &Input)
: prcessedData{/*somehow forward each element of Input to the corresponding element*/}
{}
};
У меня очень ограниченный бюджет памяти, о таких трюках, как std::array или std::array, не может быть и речи, мне бы очень хотелось, чтобы это было как можно проще. У меня есть доступ к функциям C++20, но если решение требует более поздних стандартов, я мог бы изучить его, если у меня будет доступ к этим стандартам.

Подробнее здесь: https://stackoverflow.com/questions/798 ... of-objects

Вернуться в «C++»