filter
The class templates filter
, wfilter
, multichar_filter
, multichar_wfilter
and their specializations are provided by the Iostreams library for use as base classes for user-defined Filters. These base classes supply the member types char_type
and category
used internally by the Iostreams library to classify filters.
The supplied category
member is convertible to closable_tag
and to localizable_tag
. This allows users to define models of the concepts Closable and Localizable simply by providing definitions of member functions close
and imbue
.
<boost/iostreams/concepts.hpp>
namespace boost{ namespace iostreams { template<typename Mode, typename Ch = char> struct filter; template<typename Mode, typename Ch = wchar_t> struct wfilter : filter<Mode, Ch> { }; typedef filter<input> input_filter; typedef wfilter<input> input_wfilter; typedef filter<output> output_filter; typedef wfilter<output> output_wfilter; typedef filter<seekable> seekable_filter; typedef wfilter<seekable> seekable_wfilter; typedef filter<dual_use> dual_use_filter; typedef wfilter<dual_use> dual_use_wfilter; template<typename Mode, typename Ch = char> struct multichar_filter : filter<Mode, Ch> { typedef see below category; }; template<typename Mode, typename Ch = wchar_t> struct multichar_wfilter : multichar_filter<Mode, Ch> { }; typedef multichar_filter<input> multichar_input_filter; typedef multichar_filter<input> multichar_input_wfilter; typedef multichar_filter<output> multichar_output_filter; typedef multichar_filter<output> multichar_output_wfilter; typedef multichar_filter<dual_use> multichar_dual_use_filter; typedef multichar_filter<dual_use> multichar_dual_use_wfilter; template<typename Mode, typename Ch = char> struct filter { typedef Ch char_type; typedef see below category; template<typename Device> void close(Device&); template<typename Device> void close(Device&, std::ios_base::openmode); void imbue(const std::locale&); }; } } // End namespace boost::io
filter
Convenience base class for defining Filters
Mode | - | A mode tag. |
Ch | - | The character type |
filter::category
typedef see below category;
A category tag convertible to Mode
, filter_tag
, closable_tag
and localizable_tag
.
filter::close
template<typename Device> void close(Device&); template<typename Device> void close(Device&, std::ios_base::openmode);
Both overloads are implemented as no-ops. The second is available only if Mode is convertible to bidirectional
. The first is available only if Mode is not convertible to bidirectional
.
Required by Closable.
filter::imbue
void imbue(const std::locale&);
Implemented as a no-op. Required by Localizable.
multichar_filter
Convenience base class for defining Multi-Character Filters. Derived class of filter
whose member type category
is convertible to the template parameter Mode and to multichar_filter_tag
, closable_tag
and localizable_tag
.
Mode | - | A mode tag. |
Ch | - | The character type |
© Copyright 2008 CodeRage, LLC
© Copyright 2004-2007 Jonathan Turkanis
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)