Wie boost filesstem einsetzen
-
Reinoslav1 schrieb:
Kann ich mir dann sicher sein, dass die ersten zwei Bytes in header.a, die nächsten 4 Bytes in header.b usw liegen? Oder ist diese Methode eher unsicher?
Die Ausrichtung der Member in der Klasse (Alignment) wird vom Standard nicht vorgeschrieben und kann demnach von Compiler zu Compiler variieren. Oft kannst du die Pack-Grösse aber einstellen (unter MSVC++ z.B. mit
#pragma pack). Das binäre Schreiben sollte allerdings gehen, solange das Alignment gleich ist. Aber wenn du beispielsweise als Text schreibst, bist du natürlich viel flexibler.Zudem ist
typedef struct {} name;in C++ sehr unüblich, da eine Struktur bereits selber einen vollständigen Typ angibt. Also eherstruct name {};. Und das ist zwar ein bisschen Ansichtssache, aber ich würde die C-Casts unbedingt durchreinterpret_castersetzen. Meiner Meinung nach sieht man dabei schneller, was passiert, und vermeidet auch Fehler, weil man den Cast spezifiziert (C-Casts casten nämlich fast alles).