Ich muss Bits in Dateien speichern und std::bitset
wäre perfekt dafür, denn ich brauche viele seiner Operationen, wenn ich die Struktur wieder zurücklesen. Die Klasse scheint nur aus einem Array der Bits und anderen Daten zu bestehen.Ist es in Ordnung, std :: bitset in einer Struktur zu verwenden, die vom Datenträger geschrieben und gelesen wird?
Anstatt also dieses
BYTE minuteOfDay[(60 * 24/CHAR_BIT) + ((60 * 24 % CHAR_BIT) ? 1 : 0)];
ich könnte dies:
std::bitset<60 * 24> minuteOfDay;
Wenn die Klasse mit Zukunft Visual Studio Release ändern sollte und ich brauche Dateien geschrieben mit einer alten Version zu lesen, Ich denke, ich könnte immer noch den alten Header <bitset>
in mein Projekt kopieren.
Aber kurz bevor man eine wirklich dumme Entscheidung trifft: Ist diese Idee irgendwie fehlerhaft, aus einem Grund, den ich momentan nicht voraussehe?
Also, um klar zu sein, ist es Ihnen egal, ob es funktionieren soll oder garantiert zu arbeiten, ist es egal, ob es funktioniert? Wenn ja, warum nicht einfach testen? –
Sie müssen den [zugrunde liegenden Typ] (http://en.cppreference.com/w/cpp/utility/bitset/to_ullong) weiterhin speichern und lesen. Dies ist die kleinste Einheit, die Sie verwenden können. –
Ich teste es und es sieht gut aus. @ πάνταῥεῖ was meinst du? –