Also im grunde versuch ich mir das Serializiren von Objecten zu vereinfachen.
Entweder als Binary oder JSON.
Dazu benutzt ich den std::stream oder die rapidjson Library.
Und ich hab mir einige Funktionen geschreiben die mir die Klassen Member in den Format in den Stream schreiben/lesen.
Und was ich dann ja machen müsste ist die Methoden für die Binary zu überschreiben und für das Json obwohl die Funktionen gleich auf gebaut sind.
Und da die gleich aufgebaut sind wollte ich das mit Macros machen.
|
C-/C++-Quelltext
|
1
2
3
4
5
|
std::ostream& Foo::writeBinary(std::ostream& stream){ FileBinary::writeBinary(stream,this->a); FileBinary::writeBinary(stream,this->i); FileBinary::writeBinary(stream,this->d); FileBinary::writeBinary(stream,this->arr);
return stream;}
rapidjson::Writer& Foo::writeJson(rapidjson::Writer& stream){ FileJson::writeJson(stream,"a",this->a); FileJson::writeJson(stream,"i,"this->i); FileJson::writeJson(stream,"d",this->d); FileJson::writeJson(stream,"arr",this->arr);
return writer;}
|
Das einzige was ich da ändert sind die Member.
Und da Wollte ich mir einfach ein Macro schreiben das mir die Methoden Imp. erzeugt und ich da nur die Member angeben muss.