Back to TILs

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

C++ serialization cereal

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

using namespace std;

int main()
{
  array<char, 4> mydata = {'A', 'B', 'C', 'D'};

  stringstream                ss;
  cereal::BinaryOutputArchive ar( ss );
  ar( cereal::binary_data( mydata.data(), mydata.size() ) );

  // Cria um array com o tamanho do stream;
  ss.seekg( 0, ios::end );
  const size_t sz     = ss.tellg();
  char *       buffer = new char[sz];

  // Vai para o começo do stream e lê para o buffer
  ss.seekg( 0, ios::beg );
  ss.read( buffer, sizeof( buffer ) );

  cout << "A=" << buffer[0] << endl;
  cout << "B=" << buffer[1] << endl;
  cout << "C=" << buffer[2] << endl;
  cout << "D=" << buffer[3] << endl;

  delete[] buffer;

  return 0;
}