При переходе на C ++ мне требуется определенная функция, которая кажется устаревшей.
sorry, unimplemented: non-trivial designated initializers not supported
Как правильно реализовать следующую систему хранения данных в C ++ для систем с ограничением памяти?
typedef union union_t {
float f;
int i;
} arg;
typedef struct type_t {
int a;
arg b;
int d;
} element;
const element list[] = {
{
.a = 1,
.b = { .f = 3.141519f },
.d = 6
},
{
.a = 3,
.b = { .i = 1 },
}
};
Часто предлагается использовать std:map
или std:vector
. Что подходит, однако list
является неизменным и должен иметь возможность компилировать и ссылаться на определенный блок флэш-памяти. И то, и другое кажется непригодным для этой цели.
Самое лучшее, что я могу сделать, - это ARM Compiler 6, то есть C ++ 14.