mirror of
https://github.com/boostorg/iostreams.git
synced 2026-02-22 15:32:20 +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> |