serialisierung



  • was spricht gegen diese art von serialisierung aus iso sicht?

    template <class T>
    void write_to_file (ostream& out, T *object)
    {
       char x[sizeof T];
       memcpy (x, object, sizeof T);
       //write to out
    }
    


  • Zuallererst die falsche Syntax.



  • Naja, das könnte man wohl beheben 😃
    Wirklich dagegen sprechen wahrscheinlich nur dynamisch erzeugte Werte wie Handles und Zeiger. Beim Laden sind sie dann einfach nichts-sagend :p



  • Nicht nur das. Objekte einer Klasse haben auch zusätzliche Informationen wie z.B. den vtable. Der würde dann nach dem deserialisieren nicht stimmen, ergo bummm...



  • Hallo

    Nicht zu vergessen Membervariablen zum Beispiel vom Typ char* oder std::string, die erwischt du damit auch nicht richtig. Solche flache Kopien darfst du nur machen wenn du C-kompatible structs ohne Zeiger/andere höhere Memberobjekte hast. Und natürlich darfst du diesen Speicherauschnitt auch nur wieder in Programmen einlesen die mit demselben Compiler (auch Version) erstellt wurden.

    bis bald
    akari


Anmelden zum Antworten