-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
- <TITLE>Class Template chain</TITLE>
- <LINK REL="stylesheet" HREF="../../../../boost.css">
- <LINK REL="stylesheet" HREF="../theme/iostreams.css">
-</HEAD>
-<BODY>
-
-<!-- Begin Banner -->
-
- <H1 CLASS="title">Function Template <CODE>invert</CODE></H1>
- <HR CLASS="banner">
-
-<!-- End Banner -->
-
-<DL class="page-index">
- <DT><A href="#description">Description</A></DT>
- <DT><A href="#headers">Headers</A></DT>
- <DT><A href="#reference">Reference</A></DT>
-</DL>
-
-<HR>
-
-<A NAME="description"></A>
-<H2>Description</H2>
-
-<P>
- The class template <CODE>inverse</CODE> is an adapter which transforms an <A HREF='../concepts/input_filter.html'>InputFilter</A> into an <A HREF='../concepts/output_filter.html'>OutputFilter</A> or <I>vice versa</I>. The function template <CODE>invert</CODE> is an <A HREF='http://www.boost.org/more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which when passed a Filter returns a instance of an appropriate specialization of <CODE>inverse</CODE>.
-</P>
-
-<P>Given an <A HREF='../concepts/input_filter.html'>InputFilter</A> <CODE>f</CODE>, the inverse of <CODE>f</CODE> is <A HREF='../concepts/multi_character.html'>Multi-Character</A> <A HREF='../concepts/output_filter.html'>OutputFilter</A> whose member function <CODE>write</CODE> is implemented as follows. Given a <A HREF='../concepts/sink.html'>Sink</A> <CODE>snk</CODE> and a character buffer <CODE>s</CODE> of length <CODE>n</CODE>, we
-</P>
-<UL>
- <LI>construct a <A HREF='../concepts/source.html'>Source</A> based on the buffer <CODE>s</CODE> and <A HREF='compose.html'><CODE>compose</CODE></A> it with <CODE>f</CODE> to form a Source, then
- <LI>repeatedly read sequences of characters from the composite Source and write them to <CODE>snk</CODE> until the buffer <CODE>s</CODE> is exhausted.
-</UL>
-
-<P>Similarly, given an <A HREF='../concepts/output_filter.html'>OutputFilter</A> <CODE>f</CODE>, the inverse of <CODE>f</CODE> is <A HREF='../concepts/multi_character.html'>Multi-Character</A> <A HREF='../concepts/input_filter.html'>InputFilter</A> whose member function <CODE>read</CODE> is implemented as follows. Given a <A HREF='../concepts/source.html'>Source</A> <CODE>src</CODE> and a character buffer <CODE>s</CODE> of length <CODE>n</CODE>, we
-</P>
-<UL>
- <LI>construct a <A HREF='../concepts/sink.html'>Sink</A> based on the buffer <CODE>s</CODE> and <A HREF='compose.html'><CODE>compose</CODE></A> it with <CODE>f</CODE> to form a Sink, then
- <LI>repeatedly read sequences of characters from <CODE>src</CODE> and write them to the composite Sink until the buffer <CODE>s</CODE> is full.
-</UL>
-
-<P>
- The <A HREF='../guide/modes.html'>mode</A> of a specialization of <CODE>inverse</CODE> is equal to <A HREF='../guide/modes.html#output'>output</A> if the mode of the underlying filter refines input, and to <A HREF='../guide/modes.html#input'>input</A> otherwise.
-</P>
-
-<A NAME="headers"></A>
-<H2>Headers</H2>
-
-<DL class="page-index">
- <DT><A CLASS="header" HREF="../../../../boost/iostreams/invert.hpp"><CODE><boost/iostreams/invert.hpp></CODE></A></DT>
-</DL>
-
-<A NAME="reference"></A>
-<H2>Reference</H2>
-
-<A NAME="synopsis"></A>
-<H4>Synopsis</H4>
-
-<PRE CLASS="broken_ie"><SPAN CLASS="keyword">namespace</SPAN> boost { <SPAN CLASS="keyword">namespace</SPAN> iostreams {
-
-<SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#inverse_template_params">Filter</A>>
-<SPAN CLASS='keyword'>class</SPAN> <A CLASS='documented' HREF='#inverse'>inverse</A> {
-<SPAN CLASS='keyword'>public:</SPAN>
- <SPAN CLASS='keyword'>typedef</SPAN> <SPAN CLASS='keyword'>typename</SPAN> <A CLASS='documented' HREF='../guide/traits.html#char_type_of_ref'>char_type_of</A><Filter>::type char_type;
- <SPAN CLASS='keyword'>typedef</SPAN> <SPAN CLASS='omitted'>see above</SPAN> mode;
-
- <A CLASS='documented' HREF='#inverse_ctor'>inverse</A>(<SPAN CLASS='keyword'>const</SPAN> Filter& filter);
-
- <SPAN CLASS='comment'>// Filter member functions</SPAN>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+ <title>Class Template chain</title>
+ <link rel="stylesheet" href="../../../../boost.css">
+ <link rel="stylesheet" href="../theme/iostreams.css">
+ </head>
+ <body>
+ <!-- Begin Banner -->
+ <h1 class="title">Function Template <code>invert</code></h1>
+ <hr class="banner">
+ <!-- End Banner -->
+ <dl class="page-index">
+ <dt><a href="#description">Description</a></dt>
+ <dt><a href="#headers">Headers</a></dt>
+ <dt><a href="#reference">Reference</a></dt>
+ </dl>
+ <hr>
+ <a name="description"></a>
+ <h2>Description</h2>
+ <p> The class template <code>inverse</code> is an adapter which transforms
+ an <a href="../concepts/input_filter.html">InputFilter</a> into an <a href="../concepts/output_filter.html">OutputFilter</a>
+ or <i>vice versa</i>. The function template <code>invert</code> is an <a
+ href="http://www.boost.org/more/generic_programming.html#object_generator"
+ target="_top">object generator</a> which when passed a Filter returns a
+ instance of an appropriate specialization of <code>inverse</code>.
+ </p>
+ <p>Given an <a href="../concepts/input_filter.html">InputFilter</a> <code>f</code>,
+ the inverse of <code>f</code> is <a href="../concepts/multi_character.html">Multi-Character</a>
+ <a href="../concepts/output_filter.html">OutputFilter</a> whose member
+ function <code>write</code> is implemented as follows. Given a <a href="../concepts/sink.html">Sink</a>
+ <code>snk</code> and a character type buffer <code>s</code> of length <code>n</code>,
+ we
+ </p>
+ <ul>
+ <li>construct a <a href="../concepts/source.html">Source</a> based on the
+ buffer <code>s</code> and <a href="compose.html"><code>compose</code></a>
+ it with <code>f</code> to form a Source, then </li>
+ <li>repeatedly read sequences of character types from the composite Source
+ and write them to <code>snk</code> until the buffer <code>s</code> is
+ exhausted.
+ </li>
+ </ul>
+ <p>Similarly, given an <a href="../concepts/output_filter.html">OutputFilter</a>
+ <code>f</code>, the inverse of <code>f</code> is <a href="../concepts/multi_character.html">Multi-Character</a>
+ <a href="../concepts/input_filter.html">InputFilter</a> whose member
+ function <code>read</code> is implemented as follows. Given a <a href="../concepts/source.html">Source</a>
+ <code>src</code> and a character type buffer <code>s</code> of length <code>n</code>,
+ we
+ </p>
+ <ul>
+ <li>construct a <a href="../concepts/sink.html">Sink</a> based on the
+ buffer <code>s</code> and <a href="compose.html"><code>compose</code></a>
+ it with <code>f</code> to form a Sink, then </li>
+ <li>repeatedly read sequences of character types from <code>src</code>
+ and write them to the composite Sink until the buffer <code>s</code> is
+ full.
+ </li>
+ </ul>
+ <p> The <a href="../guide/modes.html">mode</a> of a specialization of <code>inverse</code>
+ is equal to <a href="../guide/modes.html#output">output</a> if the mode
+ of the underlying filter refines input, and to <a href="../guide/modes.html#input">input</a>
+ otherwise.
+ </p>
+ <a name="headers"></a>
+ <h2>Headers</h2>
+ <dl class="page-index">
+ <dt><a class="header" href="../../../../boost/iostreams/invert.hpp"><code><boost/iostreams/invert.hpp></code></a></dt>
+ </dl>
+ <a name="reference"></a>
+ <h2>Reference</h2>
+ <a name="synopsis"></a>
+ <h4>Synopsis</h4>
+ <pre class="broken_ie"><span class="keyword">namespace</span> boost { <span
+class="keyword">namespace</span> iostreams {
+
+<span class="keyword">template</span><<span class="keyword">typename</span> <a
+class="documented" href="#inverse_template_params">Filter</a>>
+<span class="keyword">class</span> <a class="documented" href="#inverse">inverse</a> {
+<span class="keyword">public:</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <a
+class="documented" href="../guide/traits.html#char_type_of_ref">char_type_of</a><Filter>::type char_type;
+ <span class="keyword">typedef</span> <span class="omitted">see above</span> mode;
+
+ <a class="documented" href="#inverse_ctor">inverse</a>(<span class="keyword">const</span> Filter& filter);
+
+ <span class="comment">// Filter member functions</span>
};
-<SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#invert_template_params">Filter</A>>
-<A CLASS='documented' HREF='#inverse'>inverse</A><Filter> <A CLASS='documented' HREF='#invert'>invert</A>(<SPAN CLASS='keyword'>const</SPAN> Filter& filter);
-
-} } // End namespace boost::io</PRE>
-
-<A NAME="inverse"></A>
-<H2>Class Template <CODE>inverse</CODE></H2>
-
-<A NAME="inverse_template_params"></A>
-<H4>Template parameters</H4>
-
-<TABLE STYLE="margin-left:2em" BORDER=0 CELLPADDING=2>
-<TR>
- <TR>
- <TD VALIGN="top"><I>Filter</I></TD><TD WIDTH="2em" VALIGN="top">-</TD>
- <TD>A model of <A HREF='../concepts/filter.html'>Filter</A></TD>
- </TR>
-</TABLE>
-
-<A NAME="inverse_ctor"></A>
-<H4><CODE>inverse::inverse</CODE></H4>
-
-<PRE CLASS="broken_ie"> inverse(<SPAN CLASS='keyword'>const</SPAN> Filter& filter);</PRE>
-
-<P>
- Constructs an instance of <CODE>inverse</CODE> based on the given filter.
-</P>
-
-<A NAME="invert"></A>
-<H2>Function Template <CODE>invert</CODE></H2>
-
-<PRE CLASS="broken_ie"><SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> Filter>
-inverse<Filter> invert(<SPAN CLASS='keyword'>const</SPAN> Filter& filter);</PRE>
-
-<A NAME="invert_template_params"></A>
-<H4>Template parameters</H4>
-
-<TABLE STYLE="margin-left:2em" BORDER=0 CELLPADDING=2>
-<TR>
- <TR>
- <TD VALIGN="top"><I>Filter</I></TD><TD WIDTH="2em" VALIGN="top">-</TD>
- <TD>A model of <A HREF='../concepts/filter.html'>Filter</A></TD>
- </TR>
-</TABLE>
-
-<P>
- Constructs an instance of an appropriate specialization of <CODE>inverse</CODE> based on the given filter.
-</P>
-
-<!-- Begin Footer -->
-
-<HR>
-
-<P CLASS="copyright">© Copyright 2008 <a href="http://www.coderage.com/" target="_top">CodeRage, LLC</a><br/>© Copyright 2004-2007 <a href="http://www.coderage.com/turkanis/" target="_top">Jonathan Turkanis</a></P>
-<P CLASS="copyright">
- Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <A HREF="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)
-</P>
-
-<!-- End Footer -->
-
-</BODY>
+<span class="keyword">template</span><<span class="keyword">typename</span> <a
+class="documented" href="#invert_template_params">Filter</a>>
+<a class="documented" href="#inverse">inverse</a><Filter> <a class="documented"
+href="#invert">invert</a>(<span class="keyword">const</span> Filter& filter);
+
+} } // End namespace boost::io</pre>
+ <a name="inverse"></a>
+ <h2>Class Template <code>inverse</code></h2>
+ <a name="inverse_template_params"></a>
+ <h4>Template parameters</h4>
+ <table style="margin-left:2em" border="0" cellpadding="2">
+ <tbody>
+ <tr>
+ </tr>
+ <tr>
+ <td valign="top"><i>Filter</i></td>
+ <td valign="top" width="2em">-</td>
+ <td>A model of <a href="../concepts/filter.html">Filter</a></td>
+ </tr>
+ </tbody>
+ </table>
+ <a name="inverse_ctor"></a>
+ <h4><code>inverse::inverse</code></h4>
+ <pre class="broken_ie"> inverse(<span class="keyword">const</span> Filter& filter);</pre>
+ <p> Constructs an instance of <code>inverse</code> based on the given
+ filter.
+ </p>
+ <a name="invert"></a>
+ <h2>Function Template <code>invert</code></h2>
+ <pre class="broken_ie"><span class="keyword">template</span><<span class="keyword">typename</span> Filter>
+inverse<Filter> invert(<span class="keyword">const</span> Filter& filter);</pre>
+ <a name="invert_template_params"></a>
+ <h4>Template parameters</h4>
+ <table style="margin-left:2em" border="0" cellpadding="2">
+ <tbody>
+ <tr>
+ </tr>
+ <tr>
+ <td valign="top"><i>Filter</i></td>
+ <td valign="top" width="2em">-</td>
+ <td>A model of <a href="../concepts/filter.html">Filter</a></td>
+ </tr>
+ </tbody>
+ </table>
+ <p> Constructs an instance of an appropriate specialization of <code>inverse</code>
+ based on the given filter.
+ </p>
+ <!-- Begin Footer -->
+ <hr>
+ <p class="copyright">© Copyright 2008 <a href="http://www.coderage.com/" target="_top">CodeRage,
+ LLC</a><br>
+ © Copyright 2004-2007 <a href="http://www.coderage.com/turkanis/" target="_top">Jonathan
+ Turkanis</a></p>
+ <p class="copyright"> Distributed under the Boost Software License, Version
+ 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+ <!-- End Footer -->
+ </body>
+</html>