Quick Reference


Core Components
Devices
Filters
Algorithms
Views

Core Components

These components form the interface between Boost.Iostreams and the standard iostreams library.

Name Header[1] Description
stream stream.hpp Stream template which performs i/o using an instance of its first template parameter, which must model the concept Device. Derives from std::basic_istream, std::basic_ostream or std::basic_iostream depending on whether its first template parameter models Source, Sink or both.
stream_buffer stream_buffer.hpp Stream buffer template which performs i/o using an instance of its first template parameter, which must model the concept Device.
filtering_stream filtering_stream.hpp Stream template which performs filtered i/o using a contained chain. Derives from std::basic_istream, std::basic_ostream or std::basic_iostream depending on its mode, which is specified as its first template parameter.
filtering_streambuf filtering_streambuf.hpp Stream buffer template which performs filtered i/o using a contained chain.
chain chain.hpp Sequence of zero or more Filters, followed by an optional Device, accessed with a stack-like interface. Used by filtering_stream and filtering_streambuf.
code_converter code_converter.hpp Device adapter which takes a narrow-character Device and produces a wide-character Device by introducing a layer of code conversion.

Devices

Device Header[2] Description
basic_array_source,
basic_array_sink,
basic_array
array.hpp Accesses a in-memory character sequence.
back_insert_device back_inserter.hpp Appends to an STL sequence.
basic_file_source,
basic_file_sink,
basic_file
file.hpp Accesses the filesystem using a std::basic_filebuf.
basic_null_source null.hpp Reads characters from an empty sequence.
basic_null_sink Consumes and ignores characters.
file_descriptor_source,
file_descriptor_sink,
file_descriptor
file_descriptor.hpp Accesses the filesystem using an operating system file descriptor or file handle.
mapped_file_source,
mapped_file_sink,
mapped_file
mapped_file.hpp Accesses a memory-mapped file.

Filters

Category Filter Header[3] Description
Compression basic_bzip2_compressor,
basic_bzip2_decompressor
bzip2.hpp Perform compression and decompression using the libbzip2 data compression library ([Seward]).
basic_gzip_compressor,
basic_gzip_decompressor
gzip.hpp Perform compression and decompression based on the the GZIP format ([Deutsch3]).
basic_zlib_compressor,
basic_zlib_decompressor
zlib.hpp Perform compression and decompression using the zlib data compression library ([Gailly]).
Text basic_counter counter.hpp Maintains a character and line count.
basic_regex_filter regex.hpp Performs text substitutions using regular expressions from the Boost Regular Expression Library.
basic_grep_filter grep.hpp Filters character sequences line by line using regular expressions from the Boost Regular Expression Library.
newline_checker newline.hpp Verifies that a character sequence conforms to a given line-ending convention.
newline_filter Converts between the line-ending conventions used by various operating systems.
Helpers basic_line_filter line.hpp Filters a character sequence one line at a time.
basic_stdio_filter stdio.hpp Filters by reading from standard input and writing to standard output.
aggregate_filter aggregate.hpp Filters an entire character sequence at once.
symmetric_filter symmetric.hpp Filters using a model of SymmetricFilter.

Algorithms

Algorithm Header Description
copy boost/iostreams/copy.hpp

Reads characters from a Source and writes them to a Sink until the end of stream is reached; returns the number of characters written.

Views

Each view consists of one or more class templates together with an object generator. See Views.

Object Generator View Template Header[1] Description
combine combination combine.hpp Takes a pair of Filters or Devices and yields a filter or device which performs input using the first component and output using the second.
compose composite compose.hpp Takes a Filter and either a second Filter or a Device and yields a Filter or Device whose output flows through the two components in order and whose input flows flows through the two components in reverse order.
invert inverse invert.hpp Takes a Filter and yields a Filter that performs the same filtering algorithm but is an OutputFilter if the given component is an InputFilter, and an InputFilter otherwise.
restrict
slice
restriction restrict.hpp
slice.hpp
Takes a Filter or Device together with a stream offset and an optional length and yields a Filter or Device for accessing the specifed subquence of the given component
tee tee_device tee.hpp Takes a pair of Sinks and yields a Sink which sends all incoming data to both of the given Sinks.
tee_filter Takes a Filter and a Sink and yields a Filter which sends all outgoing data to the Sink in addition to passing it downsteam.

Notes

[1]Pathnames should be interpreted relative to the directory boost/iostreams.

[2]Pathnames should be interpreted relative to the directory boost/iostreams/device.

[3]Pathnames should be interpreted relative to the directory boost/iostreams/filter.