| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed |
| with this work for additional information regarding copyright |
| ownership. The ASF licenses this file to you under the Apache |
| License, Version 2.0 (the License); you may not use this file |
| except in compliance with the License. You may obtain a copy of |
| the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| implied. See the License for the specific language governing |
| permissions and limitations under the License. |
| |
| Copyright 1999-2007 Rogue Wave Software, Inc. |
| --> |
| |
| <HTML> |
| <HEAD> |
| <TITLE>ios_base</TITLE> |
| <LINK REL=StyleSheet HREF="../rw.css" TYPE="text/css" TITLE="Apache stdcxx Stylesheet"></HEAD> |
| <BODY BGCOLOR=#FFFFFF> |
| <A HREF="ios-h.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="ios-base--failure.html"><IMG SRC="images/bnext.gif" WIDTH=25 HEIGHT=21 ALT="Next file" BORDER=O></A><DIV CLASS="DOCUMENTNAME"><B>Apache C++ Standard Library Reference Guide</B></DIV> |
| <H2>ios_base</H2> |
| <P><B>Library:</B> <A HREF="2-11.html">Input/output</A></P> |
| |
| <PRE><HR><B><I>Does not inherit</I></B><HR></PRE> |
| |
| <UL> |
| <LI><A HREF="#sec1">Local Index</A></LI> |
| <LI><A HREF="#sec2">Summary</A></LI> |
| <LI><A HREF="#sec3">Synopsis</A></LI> |
| <LI><A HREF="#sec4">Description</A></LI> |
| <LI><A HREF="#sec5">Interface</A></LI> |
| <LI><A HREF="#sec6">Member Types</A></LI> |
| <LI><A HREF="#sec7">Protected Constructor</A></LI> |
| <LI><A HREF="#sec8">Destructors</A></LI> |
| <LI><A HREF="#sec9">Public Member Functions</A></LI> |
| <LI><A HREF="#failure">Class failure</A></LI> |
| <LI><A HREF="#init">Class Init</A></LI> |
| <LI><A HREF="#sec12">Nonmember Functions</A></LI> |
| <LI><A HREF="#sec13">See Also</A></LI> |
| <LI><A HREF="#sec14">Standards Conformance</A></LI> |
| </UL> |
| <A NAME="sec1"><H3>Local Index</H3></A> |
| <H4>Members</H4> |
| <UL><TABLE CELLPADDING=3> |
| <TR><TD VALIGN=top> |
| <A HREF="#idx673">event</A><BR> |
| <A HREF="#idx674">event_callback</A><BR> |
| <A HREF="#idx693">failure()</A><BR> |
| <A HREF="#idx677">flags()</A><BR> |
| <A HREF="#idx669">fmtflags</A><BR> |
| <A HREF="#idx679">getloc()</A><BR> |
| </TD> |
| <TD VALIGN=top><A HREF="#idx680">imbue()</A><BR> |
| <A HREF="#idx670">iostate</A><BR> |
| <A HREF="#idx675">ios_base()</A><BR> |
| <A HREF="#idx681">iword()</A><BR> |
| <A HREF="#idx671">openmode</A><BR> |
| <A HREF="#idx682">precision()</A><BR> |
| </TD> |
| <TD VALIGN=top><A HREF="#idx684">pword()</A><BR> |
| <A HREF="#idx685">register_callback()</A><BR> |
| <A HREF="#idx672">seekdir</A><BR> |
| <A HREF="#idx686">setf()</A><BR> |
| <A HREF="#idx688">sync_with_stdio()</A><BR> |
| <A HREF="#idx689">unsetf()</A><BR> |
| </TD> |
| <TD VALIGN=top><A HREF="#idx694">what()</A><BR> |
| <A HREF="#idx690">width()</A><BR> |
| <A HREF="#idx692">xalloc()</A><BR> |
| <A HREF="#idx676">~ios_base()</A><BR> |
| </TD></TR> |
| </TABLE></UL> |
| <H4>Non-Members</H4> |
| <UL><TABLE CELLPADDING=3> |
| <TR><TD VALIGN=top> |
| <A HREF="#idx695">boolalpha()</A><BR> |
| <A HREF="#idx696">dec()</A><BR> |
| <A HREF="#idx697">fixed()</A><BR> |
| <A HREF="#idx698">hex()</A><BR> |
| <A HREF="#idx699">internal()</A><BR> |
| <A HREF="#idx700">left()</A><BR> |
| </TD> |
| <TD VALIGN=top><A HREF="#idx701">noboolalpha()</A><BR> |
| <A HREF="#idx702">noshowbase()</A><BR> |
| <A HREF="#idx703">noshowpoint()</A><BR> |
| <A HREF="#idx704">noshowpos()</A><BR> |
| <A HREF="#idx705">noskipws()</A><BR> |
| <A HREF="#idx706">nounitbuf()</A><BR> |
| </TD> |
| <TD VALIGN=top><A HREF="#idx707">nouppercase()</A><BR> |
| <A HREF="#idx708">oct()</A><BR> |
| <A HREF="#idx709">right()</A><BR> |
| <A HREF="#idx710">scientific()</A><BR> |
| <A HREF="#idx711">showbase()</A><BR> |
| <A HREF="#idx712">showpoint()</A><BR> |
| </TD> |
| <TD VALIGN=top><A HREF="#idx713">showpos()</A><BR> |
| <A HREF="#idx714">skipws()</A><BR> |
| <A HREF="#idx715">unitbuf()</A><BR> |
| <A HREF="#idx716">uppercase()</A><BR> |
| </TD></TR> |
| </TABLE></UL> |
| |
| <A NAME="sec2"><H3>Summary</H3></A> |
| <P>Base class that defines member types and maintains data for classes that inherit from it</P> |
| <A NAME="sec3"><H3>Synopsis</H3></A> |
| |
| <PRE>#include <ios> |
| |
| namespace std { |
| class ios_base; |
| } |
| </PRE> |
| <A NAME="sec4"><H3>Description</H3></A> |
| <P>The class <B><I>ios_base</I></B> defines several member types:</P> |
| <UL> |
| <LI><P CLASS="LIST">A class <B><I>failure</I></B> derived from <B><I><A HREF="exception.html">exception</A></I></B></P></LI> |
| <LI><P CLASS="LIST">A class <B><I>Init</I></B></P></LI> |
| <LI><P CLASS="LIST">Three <B><I><A HREF="bitmasktypes.html">Bitmask Types</A></I></B>: <SAMP>fmtflags</SAMP>, <SAMP>iostate</SAMP>, and <SAMP>openmode</SAMP></P></LI> |
| <LI><P CLASS="LIST">Two enumerated types: <SAMP>seekdir</SAMP> and <SAMP>event</SAMP></P></LI> |
| </UL> |
| <P>It maintains several kinds of data:</P> |
| <UL> |
| <LI><P CLASS="LIST">Control information that influences how to interpret (format) input sequences and how to generate (format) output sequences</P></LI> |
| <LI><P CLASS="LIST">Locale object used within the stream classes</P></LI> |
| <LI><P CLASS="LIST">Arrays of user data used for storage management </P></LI> |
| <LI><P CLASS="LIST">A number of static constant data members </P></LI> |
| <LI><P CLASS="LIST">Additional information that is stored by the program for its private use</P></LI> |
| </UL> |
| <A NAME="sec5"><H3>Interface</H3></A> |
| |
| <UL><PRE>namespace std { |
| class ios_base { |
| public: |
| class failure; |
| |
| typedef T1 fmtflags; |
| static const fmtflags boolalpha; |
| static const fmtflags dec; |
| static const fmtflags fixed; |
| static const fmtflags hex; |
| static const fmtflags internal; |
| static const fmtflags left; |
| static const fmtflags oct; |
| static const fmtflags right; |
| static const fmtflags scientific; |
| static const fmtflags showbase; |
| static const fmtflags showpoint; |
| static const fmtflags showpos; |
| static const fmtflags skipws; |
| static const fmtflags unitbuf; |
| static const fmtflags uppercase; |
| static const fmtflags adjustfield; |
| static const fmtflags basefield; |
| static const fmtflags floatfield; |
| |
| typedef T2 iostate; |
| static const iostate badbit; |
| static const iostate eofbit; |
| static const iostate failbit; |
| static const iostate goodbit; |
| |
| typedef T3 openmode; |
| static const openmode app; |
| static const openmode ate; |
| static const openmode binary; |
| static const openmode in; |
| static const openmode out; |
| static const openmode trunc; |
| static const openmode nocreate; |
| static const openmode noreplace; |
| |
| enum T4 seekdir; |
| static const seekdir beg; |
| static const seekdir cur; |
| static const seekdir end; |
| |
| class Init; |
| |
| fmtflags flags () const; |
| fmtflags flags (fmtflags); |
| fmtflags setf (fmtflags); |
| fmtflags setf (fmtflags, fmtflags); |
| void unsetf (fmtflags); |
| |
| streamsize precision () const; |
| streamsize precision (streamsize); |
| streamsize width () const; |
| streamsize width (streamsize); |
| |
| locale imbue (const locale&); |
| locale getloc () const; |
| |
| static int xalloc (); |
| long& iword (int); |
| void*& pword (int); |
| |
| virtual ~ios_base(); |
| |
| enum event { erase_event, imbue_event, copyfmt_event }; |
| typedef void (*event_callback)(event, ios_base&, int); |
| void register_callback (event_call_back, int); |
| |
| static bool sync_with_stdio (bool = true); |
| |
| protected: |
| ios_base(); |
| }; |
| |
| ios_base& boolalpha (ios_base&); |
| ios_base& noboolalpha (ios_base&); |
| ios_base& showbase (ios_base&); |
| ios_base& noshowbase (ios_base&); |
| ios_base& showpoint (ios_base&); |
| ios_base& noshowpoint (ios_base&); |
| ios_base& showpos (ios_base&); |
| ios_base& noshowpos (ios_base&); |
| ios_base& skipws (ios_base&); |
| ios_base& noskipws (ios_base&); |
| ios_base& uppercase (ios_base&); |
| ios_base& nouppercase (ios_base&); |
| ios_base& internal (ios_base&); |
| ios_base& left (ios_base&); |
| ios_base& right (ios_base&); |
| ios_base& dec (ios_base&); |
| ios_base& hex (ios_base&); |
| ios_base& oct (ios_base&); |
| ios_base& fixed (ios_base&); |
| ios_base& scientific (ios_base&); |
| ios_base& unitbuf (ios_base&); |
| ios_base& nounitbuf (ios_base&); |
| } |
| </PRE></UL> |
| <A NAME="sec6"><H3>Member Types</H3></A> |
| |
| <A NAME="idx669"></A><PRE><B>fmtflags</B></PRE> |
| <UL> |
| <P>The type <SAMP>fmtflags</SAMP> is a bitmask type. See <B><I>Bitmask Type</I></B> for more information. Setting its elements has the following effects:</P> |
| <UL><TABLE CELLPADDING=3 BORDER=0> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>showpos</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Generates a + sign in nonnegative generated numeric output.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>showbase</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Generates a prefix indicating the numeric base of generated integer output</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>uppercase</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Replaces certain lowercase letters with their uppercase equivalents in generated output</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>showpoint</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Generates a decimal-point character unconditionally in generated floating-point output</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>boolalpha</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Inserts and extracts bool type in alphabetic format</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>unitbuf</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Flushes output after each output operation</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>internal</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Adds fill characters at a designated internal point in certain generated output. If no such point is designated, it's identical to <SAMP>right</SAMP>.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>left</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Adds fill characters on the right (final positions) of certain generated output</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>right</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Adds fill characters on the left (initial positions) of certain generated output</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>dec</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Converts integer input or generates integer output in decimal base</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>hex</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Converts integer input or generates integer output in hexadecimal base</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>oct</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Converts integer input or generates integer output in octal base</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>fixed</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Generates floating-point output in fixed-point notation</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>scientific</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Generates floating-point output in scientific notation</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>skipws </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Skips leading white space before certain input operation.</P></TD></TR> |
| </TABLE></UL> |
| <P>The following constants are also defined: </P> |
| <UL><TABLE CELLPADDING=3 BORDER=0> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>adjustfield</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"> <SAMP>left | right | internal</SAMP></P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>basefield</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"> <SAMP>dec | hex | oct</SAMP></P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>floatfield</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"> <SAMP>scientific | fixed</SAMP></P></TD></TR> |
| </TABLE></UL> |
| </UL> |
| |
| |
| <A NAME="idx670"></A><PRE> |
| <B>iostate</B></PRE> |
| <UL> |
| <P>The type <SAMP>iostate</SAMP> is a bitmask type. See <B><I><A HREF="bitmasktypes.html">Bitmask Types</A></I></B> for more information. Setting its elements has the following effects:</P> |
| <UL><TABLE CELLPADDING=3 BORDER=0> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>badbit </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Indicates a loss of integrity in an input or output sequence.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>eofbit </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Indicates that an input operation reached the end of an input sequence.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>failbit </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Indicates that an input operation failed to read the expected characters, or that an output operation failed to generate the desired characters.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>goodbit</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">Initial stream state, no other bit is set. </P></TD></TR> |
| </TABLE></UL> |
| </UL> |
| |
| |
| <A NAME="idx671"></A><PRE><B>openmode</B></PRE> |
| <UL> |
| <P>The type <SAMP>openmode</SAMP> is a bitmask type. See <B><I><A HREF="bitmasktypes.html">Bitmask Types</A></I></B> for more information. Setting its elements has the following effects:</P> |
| <UL><TABLE CELLPADDING=3 BORDER=0> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>app </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Attempts to seek to the end of the file immediately before each write. Each seek and the subsequent write are performed as a single atomic operation.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>ate </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Attempts to seek to the end of the file immediately after opening. The opening and the subsequent seek may be performed as two operations.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>binary </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Performs input and output in binary mode rather than text mode. In binary mode the stream treats the contents of the file as a sequence of bytes without interpreting in any special way, certain sequences of characters such as carriage returns and line feeds.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>in </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Opens for input.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>out </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Opens for output.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>trunc </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Attempts to truncate an existing file to 0 size immediately after opening. The file must be opened for output (i.e., with <SAMP>out</SAMP>). The opening and the subsequent truncation are performed as a single atomic operation.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>nocreate </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Successfully opens the file if and only if a file with that name already exists. The checking for the file's existence and its subsequent creation are performed as a single atomic operation.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>noreplace </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Successfully creates the file if and only if a file with that name does not already exist and the file is being opened for output (i.e., with <SAMP>out</SAMP>). The checking for the file's existence and its subsequent creation are performed as a single atomic operation.</P></TD></TR> |
| </TABLE></UL> |
| </UL> |
| |
| <BLOCKQUOTE><HR><B> |
| NOTE -- The nocreate and noreplace elements are not part of the C++ Standard, but are provided as an extension. See <A HREF="B.html">Appendix B</A>, for a complete list of extensions of this implementation. |
| </B><HR></BLOCKQUOTE> |
| |
| <A NAME="idx672"></A><PRE><B>seekdir</B></PRE> |
| <UL> |
| <P>The type <SAMP>seekdir</SAMP> is an enumerated type. Setting its elements has the following effects:</P> |
| <UL><TABLE CELLPADDING=3 BORDER=0> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>beg </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Requests a seek relative to the beginning of the stream.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>cur </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Requests a seek relative to the current position within the sequence.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>end </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST"></SAMP>Requests a seek relative to the current end of the sequence.</P></TD></TR> |
| </TABLE></UL> |
| </UL> |
| |
| |
| <A NAME="idx673"></A><PRE><B>event </B></PRE> |
| <UL> |
| <P>Constants of the enumerated type <SAMP>event</SAMP> are passed as arguments to user-defined callback functions registered with the stream objects via <SAMP>register_callback()</SAMP>: </P> |
| <UL><TABLE CELLPADDING=3 BORDER=0> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>erase_event</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">The stream object is being erased. </P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>imbue_event</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">A new <B><I><A HREF="locale.html">locale</A></I></B> is being imbued in the stream object.</P></TD></TR> |
| <TR CLASS="LIST"><TD VALIGN="top" CLASS="LIST"><P CLASS="LIST"><SAMP>copyfmt_event</SAMP> </P></TD> |
| <TD CLASS="LIST"><P CLASS="LIST">The <SAMP>copyfmt()</SAMP> member function has been called on an object.</P></TD></TR> |
| </TABLE></UL> |
| </UL> |
| |
| |
| <A NAME="idx674"></A><PRE><B>event_callback</B></PRE> |
| <UL> |
| <P>The type <SAMP>event_callback</SAMP> is the type of the callback function used as a parameter in the function <SAMP>register_callback</SAMP>. These functions allow you to use the <SAMP>iword</SAMP>, <SAMP>pword</SAMP> mechanism in an exception-safe environment.</P> |
| </UL> |
| |
| <A NAME="sec7"><H3>Protected Constructor</H3></A> |
| |
| <A NAME="idx675"></A><PRE><B>ios_base</B>();</PRE> |
| <UL> |
| <P>The <B><I>ios_base</I></B> members have an indeterminate value after construction.</P> |
| </UL> |
| |
| <A NAME="sec8"><H3>Destructors</H3></A> |
| |
| <A NAME="idx676"></A><PRE>virtual |
| <B>~ios_base</B>();</PRE> |
| <UL> |
| <P>Destroys an object of class <B><I>ios_base</I></B>. Calls each registered callback pair <SAMP>(fn, index)</SAMP> as <SAMP>(*fn)(erase_event,*this, index)</SAMP> at such a time that any <B><I>ios_base</I></B> member function called from within <SAMP>fn</SAMP> has well-defined results.</P> |
| </UL> |
| |
| <A NAME="sec9"><H3>Public Member Functions</H3></A> |
| |
| <A NAME="idx677"></A><PRE>fmtflags |
| <B>flags</B>() const;</PRE> |
| <UL> |
| <P>Returns the format control information for both input and output.</P> |
| </UL> |
| |
| |
| <A NAME="idx678"></A><PRE>fmtflags |
| <B>flags</B>(fmtflags fmtfl); </PRE> |
| <UL> |
| <P>Sets <SAMP>flags()</SAMP> to <SAMP>fmtfl</SAMP> and returns the previous value of <SAMP>flags()</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx686"></A><PRE>fmtflags |
| <B>setf</B>(fmtflags fmtfl); </PRE> |
| <UL> |
| <P>Sets <SAMP>flags()</SAMP> to <SAMP>(fmtfl | flags())</SAMP> and returns the previous value of <SAMP>flags()</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx687"></A><PRE>fmtflags |
| <B>setf</B>(fmtflags fmtfl, fmtflags mask); </PRE> |
| <UL> |
| <P>Clears <SAMP>mask</SAMP> in <SAMP>flags()</SAMP>, sets <SAMP>(fmtfl & mask)</SAMP> in <SAMP>flags()</SAMP>, and returns the previous value of <SAMP>flags()</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx689"></A><PRE>void |
| <B>unsetf</B>(fmtflags mask); </PRE> |
| <UL> |
| <P>Clears <SAMP>mask</SAMP> in <SAMP>flags()</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx679"></A><PRE>locale |
| <B>getloc</B>() const; </PRE> |
| <UL> |
| <P>Returns the imbued locale, which is used to perform locale-dependent input and output operations. The default locale, <SAMP>locale::locale()</SAMP>, is used if no other locale object has been imbued in the stream by a call to the <SAMP>imbue</SAMP> function.</P> |
| </UL> |
| |
| |
| <A NAME="idx680"></A><PRE>locale |
| <B>imbue</B>(const locale& loc); </PRE> |
| <UL> |
| <P>Saves the value returned by <SAMP>getloc()</SAMP>, then assigns <SAMP>loc</SAMP> to a private variable and calls each registered callback pair <SAMP>(fn, index)</SAMP> as <SAMP>(*fn)(imbue_event,*this, index)</SAMP>. It then returns the previously saved value. </P> |
| </UL> |
| |
| |
| <A NAME="idx681"></A><PRE>long& |
| <B>iword</B>(int idx); </PRE> |
| <UL> |
| <P>If <SAMP>iarray</SAMP> is a null pointer, allocates an array of <SAMP>long</SAMP>s of sufficient size, and stores a pointer to its first element in <SAMP>iarray</SAMP>. The function then extends the array pointed to by <SAMP>iarray</SAMP>, as necessary, to include the element <SAMP>iarray[idx]</SAMP>. Each newly allocated element of the array is initialized to <SAMP>0</SAMP>. The reference returned may become invalid after another call to the object's <SAMP>iword()</SAMP> member with a different index, after a call to its <SAMP>copyfmt()</SAMP> member, or when the object is destroyed. If the function fails, it sets <SAMP>failbit</SAMP>, which may throw an exception. On success, the function returns <SAMP>iarray[idx]</SAMP>; otherwise, a valid <SAMP>long&</SAMP> initialized to <SAMP>0</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx682"></A><PRE>streamsize |
| <B>precision</B>() const; </PRE> |
| <UL> |
| <P>Returns the precision (number of digits after the decimal point) to generate on certain output conversions.</P> |
| </UL> |
| |
| |
| <A NAME="idx683"></A><PRE>streamsize |
| <B>precision</B>(streamsize prec); </PRE> |
| <UL> |
| <P>Saves the precision, then sets it to <SAMP>prec</SAMP> and returns the previously saved value.</P> |
| </UL> |
| |
| |
| <A NAME="idx684"></A><PRE>void*& |
| <B>pword</B>(int idx); </PRE> |
| <UL> |
| <P>If <SAMP>parray</SAMP> is a null pointer, allocates an array of <SAMP>void*</SAMP> of sufficient size, and stores a pointer to its first element in <SAMP>parray</SAMP>. The function then extends the array pointed at by <SAMP>parray</SAMP>, as necessary, to include the element <SAMP>parray[idx]</SAMP>. Each newly allocated element of the array is initialized to <SAMP>0</SAMP>. The reference returned may become invalid after another call to the object's <SAMP>pword</SAMP> member with a different index, after a call to its <SAMP>copyfmt()</SAMP> member, or when the object is destroyed. If the function fails, it sets <SAMP>failbit</SAMP>, which may throw an exception. On success, the function returns <SAMP>parray[idx]</SAMP>; otherwise, a valid <SAMP>void*&</SAMP> initialized to <SAMP>0</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx685"></A><PRE>void |
| <B>register_callback</B>(event_callback fn, int index); </PRE> |
| <UL> |
| <P>Registers the pair <SAMP>(fn, index)</SAMP> such that during calls to <SAMP>imbue()</SAMP>, <SAMP>copyfmt()</SAMP>, or <SAMP>~ios_base()</SAMP>, the function <SAMP>fn</SAMP> is called with argument <SAMP>index</SAMP>. Functions registered are called when an event occurs, in opposite order of registration. Functions registered while a callback function is active are not called until the next event. Identical pairs are not merged; a function registered twice is called twice per event.</P> |
| </UL> |
| |
| |
| <A NAME="idx688"></A><PRE>bool |
| <B>sync_with_stdio</B>(bool sync = true); </PRE> |
| <UL> |
| <P>When called with a <SAMP>false</SAMP> argument, allows the C++ standard streams to operate independently of the standard C streams, which greatly improves performance. When called with a <SAMP>true</SAMP> argument, restores the default synchronization. The return value of the function is the status of the synchronization at the time of the call. </P> |
| </UL> |
| |
| |
| <A NAME="idx690"></A><PRE>streamsize |
| <B>width</B>() const; </PRE> |
| <UL> |
| <P>Returns the field width (number of characters) to generate on certain output conversions.</P> |
| </UL> |
| |
| |
| <A NAME="idx691"></A><PRE>streamsize |
| <B>width</B>(streamsize wide); </PRE> |
| <UL> |
| <P>Saves the field width, sets it to <SAMP>wide</SAMP>, and returns the previously saved value.</P> |
| </UL> |
| |
| |
| <A NAME="idx692"></A><PRE>static int |
| <B>xalloc</B>();</PRE> |
| <UL> |
| <P>Returns the next static index that can be used with <SAMP>pword</SAMP> and <SAMP>iword</SAMP>. This is useful if you want to share data between several stream objects.</P> |
| </UL> |
| |
| <A NAME="failure"><H3>Class failure</H3></A> |
| <P>The class <B><I>failure</I></B> defines the base class for the types of all objects thrown as exceptions by functions in the <B><I><A HREF="basic-iostream.html">iostream</A></I></B><B><I>s</I></B> library. It reports errors detected during stream buffer operations.</P> |
| <P><B>Constructor</B></P> |
| |
| <A NAME="idx693"></A><PRE>explicit <B>failure</B>(const string& msg); </PRE> |
| <UL> |
| <P>Constructs an object of class <SAMP>failure</SAMP>, initializing the base class with <SAMP>exception(msg).</SAMP></P> |
| </UL> |
| |
| <P><B>Public Member Function</B></P> |
| |
| <A NAME="idx694"></A><PRE>const char* |
| <B>what</B>() const; </PRE> |
| <UL> |
| <P>Returns the message <SAMP>msg</SAMP> with which the exception was created.</P> |
| </UL> |
| |
| <A NAME="init"><H3>Class Init</H3></A> |
| <P>The class <B><I>Init</I></B> describes an object whose construction ensures the construction of the eight objects declared in <SAMP><iostream></SAMP>, which associates file stream buffers with the standard C streams.</P> |
| <A NAME="sec12"><H3>Nonmember Functions</H3></A> |
| <P>The following functions are <B><I>ios_base</I></B> manipulators.</P> |
| |
| <A NAME="idx695"></A><PRE> |
| ios_base& |
| <B>boolalpha</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::boolalpha)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx696"></A><PRE>ios_base& |
| <B>dec</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::dec, ios_base::basefield)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx697"></A><PRE>ios_base& |
| <B>fixed</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::fixed, ios_base::floatfield)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx698"></A><PRE>ios_base& |
| <B>hex</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::hex, ios_base::basefield)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx699"></A><PRE>ios_base& |
| <B>internal</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::internal, ios_base::adjustfield)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx700"></A><PRE>ios_base& |
| <B>left</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::left, ios_base::adjustfield)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx701"></A><PRE>ios_base& |
| <B>noboolalpha</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.unsetf(ios_base::boolalpha)</SAMP> and returns <SAMP>str.</SAMP></P> |
| </UL> |
| |
| |
| <A NAME="idx702"></A><PRE>ios_base& |
| <B>noshowbase</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.unsetf(ios_base::showbase)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx703"></A><PRE>ios_base& |
| <B>noshowpoint</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.unsetf(ios_base::showpoint)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx704"></A><PRE>ios_base& |
| <B>noshowpos</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.unsetf(ios_base::showpos)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx705"></A><PRE>ios_base& |
| <B>noskipws</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.unsetf(ios_base::skipws)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx706"></A><PRE>ios_base& |
| <B>nounitbuf</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.unsetf(ios_base::unitbuf)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx707"></A><PRE>ios_base& |
| <B>nouppercase</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.unsetf(ios_base::uppercase)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx708"></A><PRE>ios_base& |
| <B>oct</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls<SAMP> str.setf(ios_base::oct, ios_base::basefield)</SAMP> and returns<SAMP> str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx709"></A><PRE>ios_base& |
| <B>right</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::right, ios_base::adjustfield)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx710"></A><PRE>ios_base& |
| <B>scientific</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::scientific, ios_base::floatfield)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx711"></A><PRE>ios_base& |
| <B>showbase</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::showbase)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx712"></A><PRE>ios_base& |
| <B>showpoint</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::showpoint)</SAMP> and returns s<SAMP>tr</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx713"></A><PRE>ios_base& |
| <B>showpos</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::showpos)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx714"></A><PRE>ios_base& |
| <B>skipws</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::skipws)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx715"></A><PRE>ios_base& |
| <B>unitbuf</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::unitbuf)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| |
| <A NAME="idx716"></A><PRE>ios_base& |
| <B>uppercase</B>(ios_base& str); </PRE> |
| <UL> |
| <P>Calls <SAMP>str.setf(ios_base::uppercase)</SAMP> and returns <SAMP>str</SAMP>.</P> |
| </UL> |
| |
| <A NAME="sec13"><H3>See Also</H3></A> |
| <P><B><I><A HREF="basic-ios.html">basic_ios</A></I></B>, <B><I><A HREF="basic-istream.html">basic_istream</A></I></B>, <B><I><A HREF="basic-ostream.html">basic_ostream</A></I></B>, <B><I><A HREF="char-traits.html">char_traits</A></I></B></P> |
| <A NAME="sec14"><H3>Standards Conformance</H3></A> |
| <P><I>ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 27.4.2</I></P> |
| |
| <BR> |
| <HR> |
| <A HREF="ios-h.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="ios-base--failure.html"><IMG SRC="images/bnext.gif" WIDTH=20 HEIGHT=21 ALT="Next file" BORDER=O></A> |
| |
| <!-- Google Analytics tracking code --> |
| <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> |
| </script> |
| <script type="text/javascript"> |
| _uacct = "UA-1775151-1"; |
| urchinTracker(); |
| </script> |
| <!-- end of Google Analytics tracking code --> |
| |
| </BODY> |
| </HTML> |