Los documentos de serialización de refuerzo afirman que la forma de serializar/deserializar los elementos es utilizar un archivo binario/de texto con una secuencia en la estructura subyacente. Esto funciona bien si no quiero utilizar los datos serializados como std :: string, pero mi intención es convertirlo directamente en un búfer char *. ¿Cómo puedo lograr esto sin crear una cadena temporal?serialización de refuerzo directo a la matriz de caracteres
¡Resuelto! Para los que querían un ejemplo:
char buffer[4096];
boost::iostreams::basic_array_sink<char> sr(buffer, buffer_size);
boost::iostreams::stream< boost::iostreams::basic_array_sink<char> > source(sr);
boost::archive::binary_oarchive oa(source);
oa << serializable_object;
Por otro lado, ¿por qué renunciar a la gestión de memoria libre y la fuga de riesgo y desbordamiento :)? –
Lamentablemente, debido a problemas de rendimiento :( – scooterman