De l'boost iostreams tutorial j'ai lu qu'il est possible d'utiliser stream_buffer boost avec std :: ostream, comme indiqué dans le tutoriel:Utiliser boost stream_buffer avec std :: ofstream
#include <ostream>
#include <boost/iostreams/device/file.hpp>
#include <boost/iostreams/stream.hpp>
namespace io = boost::iostreams;
int main()
{
io::stream_buffer<io::file_sink> buf("log.txt");
std::ostream out(&buf);
// out writes to log.txt
}
Comment peut-on utiliser boost stream_buffer créer std :: ofstream? J'ai implémenté un périphérique de récepteur personnalisé que je peux utiliser pour créer un boost stream_buffer. Avec le tampon de flux, je suis capable de créer std :: ostream, mais pas std :: ofstream.
// ...
io::stream_buffer<my_custom_file_sink> mybuf("myfile.txt"); // Creating stream_buffer works
std::ostream out(&mybuf); // Here I would like to use std::ofstream
// ...
Je avais besoin parce que une autre bibliothèque que j'utilise nécessite std :: ofstream &. Mais malheureusement, le passage du boost stream_buffer au constructeur std :: ofstream ne se compile pas. Des solutions de contournement possibles?
Non, il n'y a pas de solution de contournement. – noxmetus
@noxmetus Vous allez être surpris alors. –