我正在使用类似下面的内容.有没有更好的办法?
for (int i = 0; i < sizeof(Person) ; i++) {
const char &cr = *((char*)personPtr + i);
cout << bitset<CHAR_BIT>(cr);
}
Run Code Online (Sandbox Code Playgroud)
Moh*_*ain 12
我建议serialize_as_binary你在Person班上提供一个实用工具.
template<typename T>
void serialize_as_bin(const T &t, ostream& os) {
const unsigned char *p = reinterpret_cast<const unsigned char *>(&t);
for(size_t s = 0; s < sizeof t; ++s, ++p) serialize_as_bin(*p, os);
}
template<>
void serialize_as_bin(const unsigned char &t, ostream& os) {
// Code to serialize one byte
std::bitset<CHAR_BIT> x(t);
os << x;
}
struct Person {
A a;
B b;
ostream& serialize_as_binary(ostream& os) {
serialize_as_bin(a, os);
serialize_as_bin(b, os);
return os;
}
void deserialize_from_binary() {
// Similar stuff if required
...
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |