Back to TILs

cereal - A C++11 library for serialization - 02

C++ serialization cereal

#include <cereal/archives/binary.hpp>
#include <iostream>

using namespace std;

int main() {
  // Usado para reter os dados entre os contextos de output e input
  std::stringstream ss;

  // Contexto 1
  {
    cereal::BinaryOutputArchive ar(ss);
    uint8_t                     data[] = {65, 66, 67};
    ar(cereal::binary_data(data, sizeof(uint8_t) * 3));
  }

  // Contexto 2
  {
    cereal::BinaryInputArchive ar(ss);
    uint8_t                    data[3];
    ar(cereal::binary_data(data, sizeof(uint8_t) * 3));

    for (const uint8_t &ui : data) {
      cout << ui << " ";
    }
    cout << "\n";
    for (int i : data) {
      cout << i << " ";
    }
    cout << "\n";
    for (char c : data) {
      cout << c << " ";
    }
    cout << "\n";
  }

  return 0;
}