Пересылка структурной матрицы в стиле 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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