Serializando objeto para matriz de bytes em C ++
Estou trabalhando em um dispositivo incorporado (microcontrolador) e quero salvar objetos no armazenamento permanente (uma EEPROM). A maioria das soluções de serialização que encontro, usa o sistema de arquivos de alguma maneira, mas meu destino não possui um sistema de arquivos.
Portanto, minha pergunta é: como posso serializar um objeto em uma matriz de bytes para poder salvar essa matriz de bytes em uma EEPROM posteriormente?
Aqui está um exemplo do que estou tentando fazer:
class Person{
//Constructor, getters and setters are omitted
void save(){
char buffer[sizeof(Person)];
serialize(buffer);
EEPROM::Save(buffer, sizeof(Person));
}
void load(){
char buffer[sizeof(Person)];
EEPROM::Load(buffer, sizeof(Person));
deserialize(buffer);
}
void serialize(char* result){
//?????
}
Person deserialize(char* buffer){
//??????
}
private:
char* name;
int age;
float weight;
};