Extensible I/O with Boost IOStreams
The Standard Library IOStreams facility is meant to provide a framework for operations of all kinds on all manner of devices, but it has not proven to be the easiest of frameworks to extend. The Boost IOStreams library supplements this framework with a simpler interface for extending I/O facilities to newer devices, and provides some pretty useful classes that address common needs while reading and writing data.
Architecture of Boost IOStreams
The Standard Library IOStreams framework provides two basic abstractions, streams and stream buffers. Streams provide a uniform interface to the application for reading or writing a sequence of characters on an underlying device. Stream buffers provide a lower-level abstraction for the actual device, which is leveraged and further abstracted by streams.
The Boost IOStreams framework provides the boost::iostreams::stream
and boost::iostreams::stream_buffer
templates, which are generic implementations of the stream and...