Deux-trois détails sur ton code :
reinterpret_cast<char*>(p.name_.begin())
devrait être remplacé parp.name_.c_str()
, il est fait pour ça.- La lecture des strings ne doit pas se faire de la manière dont tu le fais. D'ailleurs, le compilateur est sensé ne pas te l'autoriser :
p.name_.c_str()
donne unconst char*
. La solution est d'avoir un buffer assez grand et de mettre ensuite son contenu dans lastd::string
via une affectation. - Si l'enregistrement se fait sur une machine big-endian et que la lecture se fait sur une machine little-endian, tu vas avoir de très mauvaises surprises.
Pour le coup, je serais curieux de savoir ce que ça peut être si c'est pas l'ordre des bytes.
+0
-0