mirror of
https://github.com/boostorg/iostreams.git
synced 2026-02-22 03:22:24 +00:00
164 lines
8.9 KiB
HTML
Executable File
164 lines
8.9 KiB
HTML
Executable File
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>Function Template adapt</TITLE>
|
|
<LINK REL="stylesheet" HREF="../../../../boost.css">
|
|
<LINK REL="stylesheet" HREF="../theme/iostreams.css">
|
|
<STYLE> H3 CODE { font-size: 120% } </STYLE>
|
|
</HEAD>
|
|
<BODY>
|
|
|
|
<!-- Begin Banner -->
|
|
|
|
<H1 CLASS="title">Function Template <CODE>adapt</CODE></H1>
|
|
<HR CLASS="banner">
|
|
|
|
<!-- End Banner -->
|
|
|
|
<DL class="page-index">
|
|
<DT><A href="#overview">Overview</A></DT>
|
|
<DT><A href="#headers">Headers</A></DT>
|
|
<DT><A href="#reference">Reference</A></DT>
|
|
</DL>
|
|
|
|
<A NAME="overview">
|
|
<H2>Overview</H2>
|
|
|
|
<P>
|
|
The overloaded function template <CODE>adapt</CODE> takes an <A HREF="http://www.sgi.com/tech/stl/OutputIterator.html">OutputIterator</A>, a pair of <A HREF="http://www.sgi.com/tech/stl/ForwardIterator.html">ForwardIterators</A> or a standard i/o stream or stream buffer and returns a Device.<SUP><A CLASS="footnote_ref" NAME="note_1_ref" HREF="#note_1">[1]</A></SUP> Certain properties of the returned Device, including its <A HREF="../modes.html">i/o mode</A>, are left indeterminate until the Device is added to a <CODE>filtering_streambuf</CODE> or <CODE>filtering_stream</CODE>. This is for two reasons:
|
|
<UL>
|
|
<LI>Certain information — such as the character type associated with an OutputIterator and the readability/writability of an iterator range — is not available at the type <CODE>adapt</CODE> is invoked.
|
|
<LI>The <A HREF="../modes.html">i/o mode</A> assigned by default to a standard i/o stream or stream buffer may not be what the library user desires. For instance, stream buffers by default are assumed to have mode <A HREF="../modes.html#seekable">Seekable</A>; a particular stream buffer, however, might actually have mode <A HREF="../modes.html#bidirectional">Bidirectional</A>, <A HREF="../modes.html#bidirectional_seekable">Bidirectional-Seekable</A> or <A HREF="../modes.html#dual_seekable">Dual-Seekable</A>. Using <CODE>adapt</CODE> allows a standard i/o stream or stream buffer to be added to a <CODE>filtering_streambuf</CODE> or <CODE>filtering_stream</CODE> regardless of the latter's mode.
|
|
</UL>
|
|
</P>
|
|
<P>See <A HREF="../adapters.html">STL Sequence Adapters</A> for usage examples.</P>
|
|
|
|
<A NAME="headers">
|
|
<H2>Headers</H2>
|
|
|
|
<DL>
|
|
<DT><A CLASS="header" HREF="../../../../boost/iostreams/adapt.hpp"><CODE><boost/iostreams/adapt.hpp></CODE></A></DT>
|
|
</DL>
|
|
|
|
<A NAME="reference">
|
|
<H2>Reference</H2>
|
|
|
|
<A NAME="synopsis">
|
|
<H3>Synopsis</H3>
|
|
|
|
<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="#output_iterators_template_params">OutIt</A>>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> <A CLASS="documented" HREF="#output_iterators">adapt</A>(<SPAN CLASS="keyword">const</SPAN> <A CLASS="documented" HREF="#output_iterators_template_params">OutIt</A>& out);
|
|
|
|
<SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#iterator_ranges_template_params">FwdIt</A>>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> <A CLASS="documented" HREF="#iterator_ranges">adapt</A>(<A CLASS="documented" HREF="#iterator_ranges_template_params">FwdIt</A> first, <A CLASS="documented" HREF="#iterator_ranges_template_params">FwdIt</A> last);
|
|
|
|
<SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#streams_template_params">Ch</A>, <SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#streams_template_params">Tr</A>>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> <A CLASS="documented" HREF="#streams">adapt</A>(std::basic_iostream<<A CLASS="documented" HREF="#streams_template_params">Ch</A>, <A CLASS="documented" HREF="#streams_template_params">Tr</A>>& io);
|
|
|
|
<SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#streams_template_params">Ch</A>, <SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#streams_template_params">Tr</A>>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> <A CLASS="documented" HREF="#streams">adapt</A>(std::basic_streambuf<<A CLASS="documented" HREF="#streams_template_params">Ch</A>, <A CLASS="documented" HREF="#streams_template_params">Tr</A>>& sb);
|
|
|
|
} } <SPAN CLASS="comment">// End namespace boost::io</SPAN></PRE>
|
|
|
|
<A NAME="output_iterators">
|
|
<H3><CODE>adapt</CODE> — OutputIterators</H3>
|
|
|
|
<PRE CLASS="broken_ie"> <SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> OutIt>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> adapt(<SPAN CLASS="keyword">const</SPAN> OutIt& out);</PRE>
|
|
|
|
<A NAME="output_iterators_template_params"></A>
|
|
<H4>Template Parameters</H4>
|
|
|
|
<TABLE STYLE="margin-left:2em" BORDER=0 CELLPADDING=2>
|
|
<TR>
|
|
<TR>
|
|
<TD VALIGN="top"><I>OutIt</I></TD><TD WIDTH="2em" VALIGN="top">-</TD>
|
|
<TD>A model of <A HREF="http://www.sgi.com/tech/stl/OutputIterator.html">OutputIterator</A>.
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<A NAME="output_iterators_return_value"></A>
|
|
<H4>Return Value</H4>
|
|
|
|
<P>Returns a <A HREF="../concepts/sink.html">Sink</A> for writing to the sequence controlled by <CODE>out</CODE>.<SUP><A CLASS="footnote_ref" NAME="note_1_ref" HREF="#note_1">[1]</A></SUP></P>
|
|
|
|
<A NAME="iterator_ranges">
|
|
<H3><CODE>adapt</CODE> — Iterator Ranges</H3>
|
|
|
|
<PRE CLASS="broken_ie"> <SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> FwdIt>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> adapt(FwdIt first, FwdIt last);</PRE>
|
|
|
|
<A NAME="iterator_ranges_template_params"></A>
|
|
<H4>Template Parameters</H4>
|
|
|
|
<TABLE STYLE="margin-left:2em" BORDER=0 CELLPADDING=2>
|
|
<TR>
|
|
<TR>
|
|
<TD VALIGN="top"><I>Source</I></TD><TD WIDTH="2em" VALIGN="top">-</TD>
|
|
<TD>A model of <A HREF="http://www.sgi.com/tech/stl/ForwardIterator.html">ForwardIterator</A>.
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<A NAME="iterator_ranges_return_value"></A>
|
|
<H4>Return Value</H4>
|
|
|
|
<P>Returns a <A HREF="../concepts/sink.html">Device</A> for accessing the sequence delimited by <CODE>first</CODE> and <CODE>last</CODE>.<SUP><A CLASS="footnote_ref" NAME="note_1_ref" HREF="#note_1">[1]</A></SUP> The <A HREF="../modes.html">i/o mode</A> of the Device is determined at the time it is added to a <CODE>filtering_streambuf</CODE> or <CODE>filtering_stream</CODE>.</P>
|
|
|
|
<A NAME="streams">
|
|
<H3><CODE>adapt</CODE> — Standard I/O Streams and Stream Buffers</H3>
|
|
|
|
<PRE CLASS="broken_ie"> <SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> Ch, <SPAN CLASS="keyword">typename</SPAN> Tr>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> adapt(std::basic_iostream<Ch, Tr>& io);
|
|
|
|
<SPAN CLASS="keyword">template</SPAN><<SPAN CLASS="keyword">typename</SPAN> Ch, <SPAN CLASS="keyword">typename</SPAN> Tr>
|
|
<SPAN CLASS="omitted">implementation-defined</SPAN> adapt(std::basic_streambuf<Ch, Tr>& sb);</PRE>
|
|
|
|
<A NAME="streams_template_params"></A>
|
|
<H4>Template Parameters</H4>
|
|
|
|
<TABLE STYLE="margin-left:2em" BORDER=0 CELLPADDING=2>
|
|
<TR>
|
|
<TR>
|
|
<TD VALIGN="top"><I>Ch</I></TD><TD WIDTH="2em" VALIGN="top">-</TD>
|
|
<TD>A character type.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top"><I>Tr</I></TD><TD WIDTH="2em" VALIGN="top">-</TD>
|
|
<TD>A standard library character traits type (<A CLASS="bib_ref" HREF="../bibliography.html#iso">[ISO]</A>, 21.1.1) with <CODE>char_type</CODE> equal to <CODE>Ch</CODE></A>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<A NAME="streams_return_value"></A>
|
|
<H4>Return Value</H4>
|
|
|
|
<P>Returns a <A HREF="../concepts/device.html">Device</A> for accessing the sequence or sequences controlled by the given i/o stream or stream buffer.<SUP><A CLASS="footnote_ref" NAME="note_1_ref" HREF="#note_1">[1]</A></SUP> The <A HREF="../modes.html">i/o mode</A> of the Device is determined at the time it is added to a <CODE>filtering_streambuf</CODE> or <CODE>filtering_stream</CODE>.</P>
|
|
|
|
<!-- Begin Footnotes -->
|
|
|
|
<HR>
|
|
|
|
<P>
|
|
<A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A>Striclty speaking, the object returned is not a true Device, since its i/o mode and possibly its character type are indeterminate. It is better termed a <SPAN CLASS="term">pseudo Device</SPAN>.
|
|
</P>
|
|
|
|
<!-- End Footnotes -->
|
|
|
|
<!-- Begin Footer -->
|
|
|
|
<HR>
|
|
<P CLASS="copyright">Revised
|
|
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
|
|
20 May, 2004
|
|
<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
|
|
</P>
|
|
|
|
<P CLASS="copyright">© Copyright Jonathan Turkanis, 2004</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> |