Sto tentando di trovare un modo per inizializzare staticamente una struttura che estende un'altra struttura.Inizializzazione statica per le strutture che estendono le strutture
Se ho una struct in C++:
struct aStruct {
int a;
int b;
};
posso inizializzare staticamente un esempio di questo con:
aStruct aStructInst = { 1, 2 };
Posso anche estendere questo struct se voglio un oggetto figlio al negozio Ulteriori informazioni:
struct bStruct : aStruct {
int c;
};
C'è un modo per inizializzare staticamente un istanc e di bStruct
? Ho provato alcune varianti ma ancora nessuna fortuna. L'inizializzazione statica è importante nel mio caso d'uso per mantenere (tutti) i dati fuori dalla RAM, che è molto limitata (applicazione incorporata).
Se il compilatore supporta le espressioni costanti C++ 11, è possibile provare un costruttore 'constexpr'. Permette inoltre * l'inizializzazione costante *, che fa parte di * inizializzazione statica *. – dyp
Un'altra possibilità in C++ 14 è di usare una funzione 'constexpr' dove si costruisce la struct (possibilmente usando assegnazioni ai membri dati) e si restituisce, basandosi sul (implicito)' constexpr'iveness della copia implicitamente creata/spostare il costruttore. – dyp