#include #include #include #include "Data.hpp" /* * template < typename T > * void printBits(T num) * { * unsigned long int *p = reinterpret_cast(&num); * * for (unsigned long int mask = 1LU << (sizeof(T) *8 -1); mask; mask >>= 1) * std::cout << ((*p & mask) != 0); * } */ uintptr_t serialize(Data* ptr) { return ( reinterpret_cast(ptr) ); } Data* deserialize(uintptr_t raw) { return ( reinterpret_cast(raw) ); } int main() { Data data; Data * data_ptr = & data; uintptr_t raw; data.str = "42"; raw = serialize(data_ptr); // printBits(raw); std::cout << " " << raw << "\n"; data_ptr = deserialize(raw); // printBits(data_ptr); std::cout << " " << data_ptr << "\n"; std::cout << data_ptr->str << "\n"; return 0; }