home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / c++ / ios.z / ios
Encoding:
Text File  |  1998-10-30  |  50.9 KB  |  661 lines

  1.  
  2.  
  3.  
  4. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ios - input/output formatting
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>>
  13.  
  14.      _cccc_llll_aaaa_ssss_ssss _iiii_oooo_ssss _{{{{
  15.      _pppp_uuuu_bbbb_llll_iiii_cccc_::::
  16.                _eeee_nnnn_uuuu_mmmm      _iiii_oooo______ssss_tttt_aaaa_tttt_eeee _{{{{ _gggg_oooo_oooo_dddd_bbbb_iiii_tttt_====_0000_,,,, _eeee_oooo_ffff_bbbb_iiii_tttt_,,,, _ffff_aaaa_iiii_llll_bbbb_iiii_tttt_,,,, _bbbb_aaaa_dddd_bbbb_iiii_tttt _}}}}_;;;;
  17.                _eeee_nnnn_uuuu_mmmm      _oooo_pppp_eeee_nnnn______mmmm_oooo_dddd_eeee _{{{{ _iiii_nnnn_,,,, _oooo_uuuu_tttt_,,,, _aaaa_tttt_eeee_,,,, _aaaa_pppp_pppp_,,,, _tttt_rrrr_uuuu_nnnn_cccc_,,,, _nnnn_oooo_cccc_rrrr_eeee_aaaa_tttt_eeee_,,,, _nnnn_oooo_rrrr_eeee_pppp_llll_aaaa_cccc_eeee _}}}}_;;;;
  18.                _eeee_nnnn_uuuu_mmmm      _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr _{{{{ _bbbb_eeee_gggg_,,,, _cccc_uuuu_rrrr_,,,, _eeee_nnnn_dddd _}}}}_;;;;
  19.                _////_**** _ffff_llll_aaaa_gggg_ssss _ffff_oooo_rrrr _cccc_oooo_nnnn_tttt_rrrr_oooo_llll_llll_iiii_nnnn_gggg _ffff_oooo_rrrr_mmmm_aaaa_tttt _****_////
  20.                _eeee_nnnn_uuuu_mmmm      _{{{{ _ssss_kkkk_iiii_pppp_wwww_ssss_====_0000_1111_,,,,
  21.                            _llll_eeee_ffff_tttt_====_0000_2222_,,,,  _rrrr_iiii_gggg_hhhh_tttt_====_0000_4444_,,,, _iiii_nnnn_tttt_eeee_rrrr_nnnn_aaaa_llll_====_0000_1111_0000_,,,,
  22.                            _dddd_eeee_cccc_====_0000_2222_0000_,,,, _oooo_cccc_tttt_====_0000_4444_0000_,,,, _hhhh_eeee_xxxx_====_0000_1111_0000_0000_,,,,
  23.                            _ssss_hhhh_oooo_wwww_bbbb_aaaa_ssss_eeee_====_0000_2222_0000_0000_,,,, _ssss_hhhh_oooo_wwww_pppp_oooo_iiii_nnnn_tttt_====_0000_4444_0000_0000_,,,, _uuuu_pppp_pppp_eeee_rrrr_cccc_aaaa_ssss_eeee_====_0000_1111_0000_0000_0000_,,,, _ssss_hhhh_oooo_wwww_pppp_oooo_ssss_====_0000_2222_0000_0000_0000_,,,,
  24.                            _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc_====_0000_4444_0000_0000_0000_,,,, _ffff_iiii_xxxx_eeee_dddd_====_0000_1111_0000_0000_0000_0000_,,,,
  25.                            _uuuu_nnnn_iiii_tttt_bbbb_uuuu_ffff_====_0000_2222_0000_0000_0000_0000_,,,, _ssss_tttt_dddd_iiii_oooo_====_0000_4444_0000_0000_0000_0000 _}}}}_;;;;
  26.                _ssss_tttt_aaaa_tttt_iiii_cccc _cccc_oooo_nnnn_ssss_tttt _llll_oooo_nnnn_gggg _bbbb_aaaa_ssss_eeee_ffff_iiii_eeee_llll_dddd_;;;;
  27.                          _////_**** _dddd_eeee_cccc_||||_oooo_cccc_tttt_||||_hhhh_eeee_xxxx _****_////
  28.                _ssss_tttt_aaaa_tttt_iiii_cccc _cccc_oooo_nnnn_ssss_tttt _llll_oooo_nnnn_gggg _aaaa_dddd_jjjj_uuuu_ssss_tttt_ffff_iiii_eeee_llll_dddd_;;;;
  29.                          _////_**** _llll_eeee_ffff_tttt_||||_rrrr_iiii_gggg_hhhh_tttt_||||_iiii_nnnn_tttt_eeee_rrrr_nnnn_aaaa_llll _****_////
  30.                _ssss_tttt_aaaa_tttt_iiii_cccc _cccc_oooo_nnnn_ssss_tttt _llll_oooo_nnnn_gggg _ffff_llll_oooo_aaaa_tttt_ffff_iiii_eeee_llll_dddd_;;;;
  31.                          _////_**** _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc_||||_ffff_iiii_xxxx_eeee_dddd _****_////
  32.      _pppp_uuuu_bbbb_llll_iiii_cccc_::::
  33.                          _iiii_oooo_ssss_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;;
  34.  
  35.                _iiii_nnnn_tttt       _bbbb_aaaa_dddd_((((_))))_;;;;
  36.                _ssss_tttt_aaaa_tttt_iiii_cccc _llll_oooo_nnnn_gggg_bbbb_iiii_tttt_aaaa_llll_llll_oooo_cccc_((((_))))_;;;;
  37.                _vvvv_oooo_iiii_dddd      _cccc_llll_eeee_aaaa_rrrr_((((_iiii_nnnn_tttt _ssss_tttt_aaaa_tttt_eeee _====_0000_))))_;;;;
  38.                _iiii_nnnn_tttt       _eeee_oooo_ffff_((((_))))_;;;;
  39.                _iiii_nnnn_tttt       _ffff_aaaa_iiii_llll_((((_))))_;;;;
  40.                _cccc_hhhh_aaaa_rrrr      _ffff_iiii_llll_llll_((((_))))_;;;;
  41.                _cccc_hhhh_aaaa_rrrr      _ffff_iiii_llll_llll_((((_cccc_hhhh_aaaa_rrrr_))))_;;;;
  42.                _llll_oooo_nnnn_gggg      _ffff_llll_aaaa_gggg_ssss_((((_))))_;;;;
  43.                _llll_oooo_nnnn_gggg      _ffff_llll_aaaa_gggg_ssss_((((_llll_oooo_nnnn_gggg_))))_;;;;
  44.                _iiii_nnnn_tttt       _gggg_oooo_oooo_dddd_((((_))))_;;;;
  45.                _llll_oooo_nnnn_gggg_&&&&     _iiii_wwww_oooo_rrrr_dddd_((((_iiii_nnnn_tttt_))))_;;;;
  46.                _iiii_nnnn_tttt       _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_!!!!_((((_))))_;;;;
  47.                          _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr _vvvv_oooo_iiii_dddd_****_((((_))))_;;;;
  48.                _iiii_nnnn_tttt       _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn_((((_))))_;;;;
  49.                _iiii_nnnn_tttt       _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn_((((_iiii_nnnn_tttt_))))_;;;;
  50.                _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_rrrr_dddd_bbbb_uuuu_ffff_((((_))))_;;;;
  51.                _vvvv_oooo_iiii_dddd_**** _&&&&   _pppp_wwww_oooo_rrrr_dddd_((((_iiii_nnnn_tttt_))))_;;;;
  52.                _iiii_nnnn_tttt       _rrrr_dddd_ssss_tttt_aaaa_tttt_eeee_((((_))))_;;;;
  53.                _llll_oooo_nnnn_gggg      _ssss_eeee_tttt_ffff_((((_llll_oooo_nnnn_gggg _ssss_eeee_tttt_bbbb_iiii_tttt_ssss_,,,, _llll_oooo_nnnn_gggg _ffff_iiii_eeee_llll_dddd_))))_;;;;
  54.                _llll_oooo_nnnn_gggg      _ssss_eeee_tttt_ffff_((((_llll_oooo_nnnn_gggg_))))_;;;;
  55.                _ssss_tttt_aaaa_tttt_iiii_cccc _vvvv_oooo_iiii_dddd_ssss_yyyy_nnnn_cccc______wwww_iiii_tttt_hhhh______ssss_tttt_dddd_iiii_oooo_((((_))))_;;;;
  56.                _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_****  _tttt_iiii_eeee_((((_))))_;;;;
  57.                _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_****  _tttt_iiii_eeee_((((_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_****_))))_;;;;
  58.                _llll_oooo_nnnn_gggg      _uuuu_nnnn_ssss_eeee_tttt_ffff_((((_llll_oooo_nnnn_gggg_))))_;;;;
  59.                _iiii_nnnn_tttt       _wwww_iiii_dddd_tttt_hhhh_((((_))))_;;;;
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  71.  
  72.  
  73.  
  74.               _iiii_nnnn_tttt        _wwww_iiii_dddd_tttt_hhhh_((((_iiii_nnnn_tttt_))))_;;;;
  75.                _ssss_tttt_aaaa_tttt_iiii_cccc _iiii_nnnn_tttt_xxxx_aaaa_llll_llll_oooo_cccc_((((_))))_;;;;
  76.      _pppp_rrrr_oooo_tttt_eeee_cccc_tttt_eeee_dddd_::::
  77.                          _iiii_oooo_ssss_((((_))))_;;;;
  78.                          _iiii_nnnn_iiii_tttt_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;;
  79.      _pppp_rrrr_iiii_vvvv_aaaa_tttt_eeee_::::
  80.                          _iiii_oooo_ssss_((((_iiii_oooo_ssss_&&&&_))))_;;;;
  81.                _vvvv_oooo_iiii_dddd      _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_====_((((_iiii_oooo_ssss_&&&&_))))_;;;;
  82.      _}}}}_;;;;
  83.  
  84.                _////_**** _MMMM_aaaa_nnnn_iiii_pppp_uuuu_llll_aaaa_tttt_oooo_rrrr_ssss _****_////
  85.      _iiii_oooo_ssss_&&&&      _dddd_eeee_cccc_((((_iiii_oooo_ssss_&&&&_)))) _;;;;
  86.      _iiii_oooo_ssss_&&&&      _hhhh_eeee_xxxx_((((_iiii_oooo_ssss_&&&&_)))) _;;;;
  87.      _iiii_oooo_ssss_&&&&      _oooo_cccc_tttt_((((_iiii_oooo_ssss_&&&&_)))) _;;;;
  88.      _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _eeee_nnnn_dddd_llll_((((_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _iiii_)))) _;;;;
  89.      _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _eeee_nnnn_dddd_ssss_((((_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _iiii_)))) _;;;;
  90.      _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _ffff_llll_uuuu_ssss_hhhh_((((_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_)))) _;;;;
  91.      _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _wwww_ssss_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_)))) _;;;;
  92.  
  93. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  94.      The stream classes derived from class _iiii_oooo_ssss provide a high level interface
  95.      that supports transferring formatted and unformatted information into and
  96.      out of _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffffs.  This manual page describes the operations common to
  97.      both input and output.
  98.  
  99.      Several enumerations are declared in class _iiii_oooo_ssss, _oooo_pppp_eeee_nnnn______mmmm_oooo_dddd_eeee, _iiii_oooo______ssss_tttt_aaaa_tttt_eeee,
  100.      _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr, and format flags, to avoid polluting the global name space.
  101.      The _iiii_oooo______ssss_tttt_aaaa_tttt_eeees are described on this manual page under ``Error States.''
  102.      The format fields are also described on this page, under ``Formatting.''
  103.      The _oooo_pppp_eeee_nnnn______mmmm_oooo_dddd_eeees are described in detail in _ffff_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++) under _oooo_pppp_eeee_nnnn_((((_)))).
  104.      The _ssss_eeee_eeee_kkkk______dddd_iiii_rrrrs are described in _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++) under _ssss_eeee_eeee_kkkk_oooo_ffff_ffff_((((_)))).
  105.  
  106.      In the following descriptions assume:
  107.           - _s and _s_2 are _iiii_oooo_sssss.
  108.           - _s_r is an _iiii_oooo_ssss_&&&&.
  109.           - _s_p is a _iiii_oooo_ssss_****.
  110.           - _i, _o_i, _j, and _n are _iiii_nnnn_tttts.
  111.           - _l, _f, and _b are _llll_oooo_nnnn_ggggs.
  112.           - _c and _o_c are _cccc_hhhh_aaaa_rrrrs.
  113.           - _o_s_p and _o_o_s_p are _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_****s.
  114.           - _s_b is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****.
  115.           - _p_o_s is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss.
  116.           - _o_f_f is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_oooo_ffff_ffff.
  117.           - _d_i_r is a _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr.
  118.           - _m_o_d_e is an _iiii_nnnn_tttt representing an _oooo_pppp_eeee_nnnn______mmmm_oooo_dddd_eeee.
  119.           - _f_c_t is a function with type _iiii_oooo_ssss_&&&& _((((_****_))))_((((_iiii_oooo_ssss_&&&&_)))).
  120.           - _v_p is a _vvvv_oooo_iiii_dddd_****_&&&&.
  121.  
  122.    CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss aaaannnndddd aaaassssssssiiiiggggnnnnmmmmeeeennnntttt::::
  123.           _iiii_oooo_ssss_((((_s_b_))))
  124.                The _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff denoted by _s_b becomes the _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff associated
  125.                with the constructed _iiii_oooo_ssss.  If _s_b is null, the effect is
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  137.  
  138.  
  139.  
  140.                undefined.
  141.  
  142.           _iiii_oooo_ssss_((((_s_r_))))
  143.           _s_2_====_s
  144.                Copying of _iiii_oooo_sssss is not well-defined in general, therefore the
  145.                constructor and assignment operators are private so that the
  146.                compiler will complain about attempts to copy _iiii_oooo_ssss objects.
  147.                Copying pointers to _iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmms is usually what is desired.
  148.  
  149.           _iiii_oooo_ssss_((((_))))
  150.           _iiii_nnnn_iiii_tttt_((((_s_b_))))
  151.                Because class _iiii_oooo_ssss is now inherited as a virtual base class, a
  152.                constructor with no arguments must be used.  This constructor
  153.                is declared protected.  Therefore _iiii_oooo_ssss_::::_::::_iiii_nnnn_iiii_tttt_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_)))) is
  154.                declared protected and must be used for initialization of
  155.                derived classes.
  156.  
  157.    EEEErrrrrrrroooorrrr SSSSttttaaaatttteeeessss
  158.      An _iiii_oooo_ssss has an internal _e_r_r_o_r _s_t_a_t_e (which is a collection of the bits
  159.      declared as _iiii_oooo______ssss_tttt_aaaa_tttt_eeees).  Members related to the error state are:
  160.  
  161.           _i_====_s_...._rrrr_dddd_ssss_tttt_aaaa_tttt_eeee_((((_))))
  162.                Returns the current error state.
  163.  
  164.           _s_...._cccc_llll_eeee_aaaa_rrrr_((((_i_))))
  165.                Stores _i as the error state.  If _i is zero, this clears all
  166.                bits.  To set a bit without clearing previously set bits
  167.                requires something like _s_...._cccc_llll_eeee_aaaa_rrrr_((((_iiii_oooo_ssss_::::_::::_bbbb_aaaa_dddd_bbbb_iiii_tttt_||||_ssss_...._rrrr_dddd_ssss_tttt_aaaa_tttt_eeee_((((_))))_)))).
  168.  
  169.           _i_====_s_...._gggg_oooo_oooo_dddd_((((_))))
  170.                Returns non-zero if the error state has no bits set, zero
  171.                otherwise.
  172.  
  173.           _i_====_s_...._eeee_oooo_ffff_((((_))))
  174.                Returns non-zero if _eeee_oooo_ffff_bbbb_iiii_tttt is set in the error state, zero
  175.                otherwise.  Normally this bit is set when an end-of-file has
  176.                been encountered during an extraction.
  177.  
  178.           _i_====_s_...._ffff_aaaa_iiii_llll_((((_))))
  179.                Returns non-zero if either _bbbb_aaaa_dddd_bbbb_iiii_tttt or _ffff_aaaa_iiii_llll_bbbb_iiii_tttt is set in the
  180.                error state, zero otherwise.  Normally this indicates that some
  181.                extraction or conversion has failed, but the stream is still
  182.                usable.  That is, once the _ffff_aaaa_iiii_llll_bbbb_iiii_tttt is cleared, I/O on _s can
  183.                usually continue.
  184.  
  185.           _i_====_s_...._bbbb_aaaa_dddd_((((_))))
  186.                Returns non-zero if _bbbb_aaaa_dddd_bbbb_iiii_tttt is set in the error state, zero
  187.                otherwise.  This usually indicates that some operation on
  188.                _s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_)))) has failed, a severe error, from which recovery is
  189.                probably impossible.  That is, it will probably be impossible
  190.                to continue I/O operations on _s.
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  203.  
  204.  
  205.  
  206.    OOOOppppeeeerrrraaaattttoooorrrrssss
  207.      Two operators are defined to allow convenient checking of the error state
  208.      of an _iiii_oooo_ssss:  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_!!!!_((((_)))) and _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr _vvvv_oooo_iiii_dddd_****_((((_)))).  The latter converts an _iiii_oooo_ssss
  209.      to a pointer so that it can be compared to zero.  The conversion will
  210.      return 0 if _ffff_aaaa_iiii_llll_bbbb_iiii_tttt or _bbbb_aaaa_dddd_bbbb_iiii_tttt is set in the error state, and will return
  211.      a pointer value otherwise.  This pointer is not meant to be used.  This
  212.      allows one to write expressions such as:
  213.  
  214.           _iiii_ffff _(((( _cccc_iiii_nnnn _)))) _...._...._....
  215.  
  216.           _iiii_ffff _(((( _cccc_iiii_nnnn _>>>>_>>>> _xxxx _)))) _...._...._....
  217.  
  218.  
  219.      The _!!!! operator returns non-zero if _ffff_aaaa_iiii_llll_bbbb_iiii_tttt or _bbbb_aaaa_dddd_bbbb_iiii_tttt is set in the error
  220.      state, which allows expressions like the following to be used:
  221.  
  222.           _iiii_ffff _(((( _!!!!_cccc_oooo_uuuu_tttt _)))) _...._...._....
  223.  
  224.  
  225.    FFFFoooorrrrmmmmaaaattttttttiiiinnnngggg
  226.      An _iiii_oooo_ssss has a _f_o_r_m_a_t _s_t_a_t_e that is used by input and output operations to
  227.      control the details of formatting operations.  For other operations the
  228.      format state has no particular effect and its components may be set and
  229.      examined arbitrarily by user code.  Most formatting details are
  230.      controlled by using the _ffff_llll_aaaa_gggg_ssss_((((_)))), _ssss_eeee_tttt_ffff_((((_)))), and _uuuu_nnnn_ssss_eeee_tttt_ffff_((((_)))) functions to set
  231.      the following flags, which are declared in an enumeration in class _iiii_oooo_ssss.
  232.      Three other components of the format state are controlled separately with
  233.      the functions _ffff_iiii_llll_llll_((((_)))), _wwww_iiii_dddd_tttt_hhhh_((((_)))), and _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn_((((_)))).
  234.  
  235.           _ssss_kkkk_iiii_pppp_wwww_ssss
  236.                If _ssss_kkkk_iiii_pppp_wwww_ssss is set, whitespace will be skipped on input.  This
  237.                applies to scalar extractions.  When _ssss_kkkk_iiii_pppp_wwww_ssss is not set,
  238.                whitespace is not skipped before the extractor begins
  239.                conversion.  If _ssss_kkkk_iiii_pppp_wwww_ssss is not set and a zero length field is
  240.                encountered, the extractor will signal an error.  Additionally,
  241.                the arithmetic extractors will signal an error if _ssss_kkkk_iiii_pppp_wwww_ssss is not
  242.                set and a whitespace is encountered.
  243.  
  244.           _llll_eeee_ffff_tttt
  245.           _rrrr_iiii_gggg_hhhh_tttt
  246.           _iiii_nnnn_tttt_eeee_rrrr_nnnn_aaaa_llll
  247.                These flags control the padding of a value.  When _llll_eeee_ffff_tttt is set,
  248.                the value is left-adjusted, that is, the fill character is
  249.                added after the value.  When _rrrr_iiii_gggg_hhhh_tttt is set, the value is right-
  250.                adjusted, that is, the fill character is added before the
  251.                value.  When _iiii_nnnn_tttt_eeee_rrrr_nnnn_aaaa_llll is set, the fill character is added after
  252.                any leading sign or base indication, but before the value.
  253.                Right-adjustment is the default if none of these flags is set.
  254.                These fields are collectively identified by the static member,
  255.                _iiii_oooo_ssss_::::_::::_aaaa_dddd_jjjj_uuuu_ssss_tttt_ffff_iiii_eeee_llll_dddd.  The fill character is controlled by the
  256.                _ffff_iiii_llll_llll_((((_)))) function, and the width of padding is controlled by the
  257.                _wwww_iiii_dddd_tttt_hhhh_((((_)))) function.
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  269.  
  270.  
  271.  
  272.           _dddd_eeee_cccc
  273.           _oooo_cccc_tttt
  274.           _hhhh_eeee_xxxx
  275.                These flags control the conversion base of a value.  The
  276.                conversion base is 10 (decimal) if _dddd_eeee_cccc is set, but if _oooo_cccc_tttt or
  277.                _hhhh_eeee_xxxx is set, conversions are done in octal or hexadecimal,
  278.                respectively.  If none of these is set, insertions are in
  279.                decimal, but extractions are interpreted according to the C++
  280.                lexical conventions for integral constants.  These fields are
  281.                collectively identified by the static member, _iiii_oooo_ssss_::::_::::_bbbb_aaaa_ssss_eeee_ffff_iiii_eeee_llll_dddd.
  282.                The manipulators _hhhh_eeee_xxxx, _dddd_eeee_cccc, and _oooo_cccc_tttt can also be used to set the
  283.                conversion base; see ``Built-in Manipulators'' below.
  284.  
  285.           _ssss_hhhh_oooo_wwww_bbbb_aaaa_ssss_eeee
  286.                If _ssss_hhhh_oooo_wwww_bbbb_aaaa_ssss_eeee is set, insertions will be converted to an external
  287.                form that can be read according to the C++ lexical conventions
  288.                for integral constants.  _ssss_hhhh_oooo_wwww_bbbb_aaaa_ssss_eeee is unset by default.
  289.  
  290.           _ssss_hhhh_oooo_wwww_pppp_oooo_ssss
  291.                If _ssss_hhhh_oooo_wwww_pppp_oooo_ssss is set, then a ``+'' will be inserted into a decimal
  292.                conversion of a positive integral value.
  293.  
  294.           _uuuu_pppp_pppp_eeee_rrrr_cccc_aaaa_ssss_eeee
  295.                If _uuuu_pppp_pppp_eeee_rrrr_cccc_aaaa_ssss_eeee is set, then an uppercase ``X`` will be used for
  296.                hexadecimal conversion when _ssss_hhhh_oooo_wwww_bbbb_aaaa_ssss_eeee is set, or an uppercase
  297.                ``E'' will be used to print floating point numbers in
  298.                scientific notation.
  299.  
  300.           _ssss_hhhh_oooo_wwww_pppp_oooo_iiii_nnnn_tttt
  301.                If _ssss_hhhh_oooo_wwww_pppp_oooo_iiii_nnnn_tttt is set, trailing zeros and decimal points appear
  302.                in the result of a floating point conversion.
  303.  
  304.           _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc
  305.           _ffff_iiii_xxxx_eeee_dddd
  306.                These flags control the format to which a floating point value
  307.                is converted for insertion into a stream.  If _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc is
  308.                set, the value is converted using scientific notation, where
  309.                there is one digit before the decimal point and the number of
  310.                digits after it is equal to the _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn (see below), which is
  311.                six by default.  An uppercase ``E'' will introduce the exponent
  312.                if _uuuu_pppp_pppp_eeee_rrrr_cccc_aaaa_ssss_eeee is set, a lowercase ``e'' will appear otherwise.
  313.                If _ffff_iiii_xxxx_eeee_dddd is set, the value is converted to decimal notation
  314.                with _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn digits after the decimal point, or six by
  315.                default.  If neither _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc nor _ffff_iiii_xxxx_eeee_dddd is set, then the
  316.                value will be converted using either notation, depending on the
  317.                value;  scientific notation will be used if the exponent
  318.                resulting from the conversion is less than -4 or greater than
  319.                or equal to precision digits.  Otherwise the value will be
  320.                converted to decimal notation with _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn digits total.  If
  321.                _ssss_hhhh_oooo_wwww_pppp_oooo_iiii_nnnn_tttt is not set, trailing zeroes are removed from the
  322.                result and a decimal point appears only if it is followed by a
  323.                digit.  _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc and _ffff_iiii_xxxx_eeee_dddd are collectively identified by the
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  335.  
  336.  
  337.  
  338.                static member _iiii_oooo_ssss_::::_::::_ffff_llll_oooo_aaaa_tttt_ffff_iiii_eeee_llll_dddd.
  339.  
  340.           _uuuu_nnnn_iiii_tttt_bbbb_uuuu_ffff
  341.                When set, a flush is performed by _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_::::_::::_oooo_ssss_ffff_xxxx_((((_)))) after each
  342.                insertion.  Unit buffering provides a compromise between
  343.                buffered output and unbuffered output.  Performance is better
  344.                under unit buffering than unbuffered output, which makes a
  345.                system call for each character output.  Unit buffering makes a
  346.                system call for each insertion operation, and doesn't require
  347.                the user to call _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_::::_::::_ffff_llll_uuuu_ssss_hhhh_((((_)))).
  348.  
  349.           _ssss_tttt_dddd_iiii_oooo
  350.                When set, _ssss_tttt_dddd_oooo_uuuu_tttt and _ssss_tttt_dddd_eeee_rrrr_rrrr are flushed by _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_::::_::::_oooo_ssss_ffff_xxxx_((((_))))
  351.                after each insertion.
  352.  
  353.      The following functions use and set the format flags and variables.
  354.  
  355.           _o_c_====_s_...._ffff_iiii_llll_llll_((((_c_))))
  356.                Sets the ``fill character'' format state variable to _c and
  357.                returns the previous value.  _c will be used as the padding
  358.                character, if one is necessary (see _wwww_iiii_dddd_tttt_hhhh(), below).  The
  359.                default fill or padding character is a space.  The positioning
  360.                of the fill character is determined by the _rrrr_iiii_gggg_hhhh_tttt, _llll_eeee_ffff_tttt, and
  361.                _iiii_nnnn_tttt_eeee_rrrr_nnnn_aaaa_llll flags; see above.  A parameterized manipulator,
  362.                _ssss_eeee_tttt_ffff_iiii_llll_llll, is also available for setting the fill character; see
  363.                _mmmm_aaaa_nnnn_iiii_pppp(3C++).
  364.  
  365.           _c_====_s_...._ffff_iiii_llll_llll_((((_))))
  366.                Returns the ``fill character'' format state variable.
  367.  
  368.           _l_====_s_...._ffff_llll_aaaa_gggg_ssss_((((_))))
  369.                Returns the current format flags.
  370.  
  371.           _l_====_s_...._ffff_llll_aaaa_gggg_ssss_((((_ffff_))))
  372.                Resets all the format flags to those specified in _f and returns
  373.                the previous settings.
  374.  
  375.           _o_i_====_s_...._pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn_((((_i_))))
  376.                Sets the _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn format state variable to _i and returns the
  377.                previous value.  This variable controls the number of
  378.                significant digits inserted by the floating point inserter.
  379.                The default is 6.  A parameterized manipulator, _ssss_eeee_tttt_pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn,
  380.                is also available for setting the precision; see _mmmm_aaaa_nnnn_iiii_pppp(3C++).
  381.  
  382.           _i_====_s_...._pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn_((((_))))
  383.                Returns the _pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn format state variable.
  384.  
  385.           _l_====_s_...._ssss_eeee_tttt_ffff_((((_b_))))
  386.                Turns on in _s the format flags marked in _b and returns the
  387.                previous settings.  A parameterized manipulator, _ssss_eeee_tttt_iiii_oooo_ssss_ffff_llll_aaaa_gggg_ssss,
  388.                performs the same function; see _mmmm_aaaa_nnnn_iiii_pppp(3C++).
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  401.  
  402.  
  403.  
  404.           _l_====_s_...._ssss_eeee_tttt_ffff_((((_b_,,,,_f_))))
  405.                Resets in _s only the format flags specified by _f to the
  406.                settings marked in _b, and returns the previous settings.  That
  407.                is, the format flags specified by _f are cleared in _s, then
  408.                reset to be those marked in _b.  For example, to change the
  409.                conversion base in _s to be _hhhh_eeee_xxxx, one could write:
  410.                _s_...._ssss_eeee_tttt_ffff_((((_iiii_oooo_ssss_::::_::::_hhhh_eeee_xxxx_,,,,_iiii_oooo_ssss_::::_::::_bbbb_aaaa_ssss_eeee_ffff_iiii_eeee_llll_dddd_)))).  _iiii_oooo_ssss_::::_::::_bbbb_aaaa_ssss_eeee_ffff_iiii_eeee_llll_dddd specifies the
  411.                conversion base bits as candidates for change, and _iiii_oooo_ssss_::::_::::_hhhh_eeee_xxxx
  412.                specifies the new value.  _s_...._ssss_eeee_tttt_ffff_((((_0000_,,,,_f_)))) will clear all the bits
  413.                specified by _f, as will a parameterized manipulator,
  414.                _rrrr_eeee_ssss_eeee_tttt_iiii_oooo_ssss_ffff_llll_aaaa_gggg_ssss; see _mmmm_aaaa_nnnn_iiii_pppp(3C++).
  415.  
  416.           _l_====_s_...._uuuu_nnnn_ssss_eeee_tttt_ffff_((((_b_))))
  417.                Unsets in _s the bits set in _b and returns the previous
  418.                settings.
  419.  
  420.           _o_i_====_s_...._wwww_iiii_dddd_tttt_hhhh_((((_i_))))
  421.                Sets the _f_i_e_l_d _w_i_d_t_h format variable to _i and returns the
  422.                previous value.  When the field width is zero (the default),
  423.                inserters will insert only as many characters as necessary to
  424.                represent the value being inserted.  When the field width is
  425.                non-zero, the inserters will insert at least that many
  426.                characters, using the fill character to pad the value, if the
  427.                value being inserted requires fewer than _f_i_e_l_d-_w_i_d_t_h characters
  428.                to be represented.  However, the numeric inserters never
  429.                truncate values, so if the value being inserted will not fit in
  430.                _f_i_e_l_d-_w_i_d_t_h characters, more than _f_i_e_l_d-_w_i_d_t_h characters will
  431.                be output.  The field width is always interpreted as a mininum
  432.                number of characters; there is no direct way to specify a
  433.                maximum number of characters.  The _f_i_e_l_d-_w_i_d_t_h format variable
  434.                is reset to the default (zero) after each insertion or
  435.                extraction, and in this sense it behaves as a parameter for
  436.                insertions and extractions.  A parameterized manipulator, _ssss_eeee_tttt_wwww,
  437.                is also available for setting the width; see _mmmm_aaaa_nnnn_iiii_pppp(3C++).
  438.  
  439.           _i_====_s_...._wwww_iiii_dddd_tttt_hhhh_((((_))))
  440.                Returns the _f_i_e_l_d-_w_i_d_t_h format variable.
  441.  
  442.    UUUUsssseeeerrrr----ddddeeeeffffiiiinnnneeeedddd FFFFoooorrrrmmmmaaaatttt FFFFllllaaaaggggssss
  443.      Class _iiii_oooo_ssss can be used as a base class for derived classes that require
  444.      additional format flags or variables.  The iostream library provides
  445.      several functions to do this.  The two static member functions
  446.      _iiii_oooo_ssss_::::_::::_xxxx_aaaa_llll_llll_oooo_cccc and _iiii_oooo_ssss_::::_::::_bbbb_iiii_tttt_aaaa_llll_llll_oooo_cccc, allow several such classes to be used
  447.      together without interference.
  448.  
  449.           _b_====_iiii_oooo_ssss_::::_::::_bbbb_iiii_tttt_aaaa_llll_llll_oooo_cccc_((((_))))
  450.                Returns a _llll_oooo_nnnn_gggg with a single, previously unallocated, bit set.
  451.                This allows users who need an additional flag to acquire one,
  452.                and pass it as an argument to _iiii_oooo_ssss_::::_::::_ssss_eeee_tttt_ffff_((((_)))), for example.
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  467.  
  468.  
  469.  
  470.           _i_====_iiii_oooo_ssss_::::_::::_xxxx_aaaa_llll_llll_oooo_cccc_((((_))))
  471.                Returns a previously unused index into an array of words
  472.                available for use as format state variables by derived classes.
  473.  
  474.           _l_====_s_...._iiii_wwww_oooo_rrrr_dddd_((((_i_))))
  475.                When _i is an index allocated by _iiii_oooo_ssss_::::_::::_xxxx_aaaa_llll_llll_oooo_cccc, _iiii_wwww_oooo_rrrr_dddd_((((_)))) returns a
  476.                reference to the _ith user-defined word.
  477.  
  478.           _v_p_====_s_...._pppp_wwww_oooo_rrrr_dddd_((((_i_))))
  479.                When _i is an index allocated by _iiii_oooo_ssss_::::_::::_xxxx_aaaa_llll_llll_oooo_cccc, _pppp_wwww_oooo_rrrr_dddd_((((_)))) returns a
  480.                reference to the _ith user-defined word.  _pppp_wwww_oooo_rrrr_dddd_((((_)))) is the same as
  481.                _iiii_wwww_oooo_rrrr_dddd except that it is typed differently.
  482.  
  483.    OOOOtttthhhheeeerrrr mmmmeeeemmmmbbbbeeeerrrrssss::::
  484.           _s_b_====_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))
  485.                Returns a pointer to the _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff associated with _s when _s was
  486.                constructed.
  487.  
  488.           _iiii_oooo_ssss_::::_::::_ssss_yyyy_nnnn_cccc______wwww_iiii_tttt_hhhh______ssss_tttt_dddd_iiii_oooo_((((_))))
  489.                Solves problems that arise when mixing stdio and iostreams.
  490.                The first time it is called it will reset the standard
  491.                iostreams (_cccc_iiii_nnnn, _cccc_oooo_uuuu_tttt, _cccc_eeee_rrrr_rrrr, _cccc_llll_oooo_gggg) to be streams using
  492.                _ssss_tttt_dddd_iiii_oooo_bbbb_uuuu_ffffs.  After that, input and output using these streams
  493.                may be mixed with input and output using the corresponding
  494.                _FFFF_IIII_LLLL_EEEEs (_ssss_tttt_dddd_iiii_nnnn, _ssss_tttt_dddd_oooo_uuuu_tttt, and _ssss_tttt_dddd_eeee_rrrr_rrrr) and will be properly
  495.                synchronized.  _ssss_yyyy_nnnn_cccc______wwww_iiii_tttt_hhhh______ssss_tttt_dddd_iiii_oooo_((((_)))) makes _cccc_oooo_uuuu_tttt and _cccc_eeee_rrrr_rrrr unit
  496.                buffered (see _iiii_oooo_ssss_::::_::::_uuuu_nnnn_iiii_tttt_bbbb_uuuu_ffff and _iiii_oooo_ssss_::::_::::_ssss_tttt_dddd_iiii_oooo above).  Invoking
  497.                _ssss_yyyy_nnnn_cccc______wwww_iiii_tttt_hhhh______ssss_tttt_dddd_iiii_oooo_((((_)))) degrades performance a variable amount,
  498.                depending on the length of the strings being inserted (shorter
  499.                strings incur a larger performance hit).
  500.  
  501.           _o_o_s_p_====_s_...._tttt_iiii_eeee_((((_o_s_p_))))
  502.                Sets the _tttt_iiii_eeee variable to _o_s_p, and returns its previous value.
  503.                This variable supports automatic ``flushing'' of _iiii_oooo_sssss.  If the
  504.                _tttt_iiii_eeee variable is non-null and an _iiii_oooo_ssss needs more characters or
  505.                has characters to be consumed, the _iiii_oooo_ssss pointed at by the tie
  506.                variable is flushed.  By default, _cccc_iiii_nnnn is tied initially to _cccc_oooo_uuuu_tttt
  507.                so that attempts to get more characters from standard input
  508.                result in flushing standard output.  Additionally, _cccc_eeee_rrrr_rrrr and
  509.                _cccc_llll_oooo_gggg are tied to _cccc_oooo_uuuu_tttt by default.  For other _iiii_oooo_sssss, the tie
  510.                variable is set to zero by default.
  511.  
  512.           _o_s_p_====_s_...._tttt_iiii_eeee_((((_))))
  513.                Returns the _tttt_iiii_eeee variable.
  514.  
  515.    BBBBuuuuiiiilllltttt----iiiinnnn MMMMaaaannnniiiippppuuuullllaaaattttoooorrrrssss::::
  516.      Some convenient manipulators (functions that take an _iiii_oooo_ssss_&&&&, an _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&,
  517.      or an _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& and return their argument; see _mmmm_aaaa_nnnn_iiii_pppp(3C++)) are:
  518.      _s_r_<<<<_<<<<_dddd_eeee_cccc
  519.      _s_r_>>>>_>>>>_dddd_eeee_cccc
  520.           These set the conversion base format flag to 10.
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  533.  
  534.  
  535.  
  536.      _s_r_<<<<_<<<<_hhhh_eeee_xxxx
  537.      _s_r_>>>>_>>>>_hhhh_eeee_xxxx
  538.           These set the conversion base format flag to 16.
  539.  
  540.      _s_r_<<<<_<<<<_oooo_cccc_tttt
  541.      _s_r_>>>>_>>>>_oooo_cccc_tttt
  542.           These set the conversion base format flag to 8.
  543.  
  544.           _s_r_>>>>_>>>>_wwww_ssss
  545.                Extracts whitespace characters.  See _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++).
  546.  
  547.           _s_r_<<<<_<<<<_eeee_nnnn_dddd_llll
  548.                Ends a line by inserting a newline character and flushing.  See
  549.                _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++).
  550.  
  551.           _s_r_<<<<_<<<<_eeee_nnnn_dddd_ssss
  552.                Ends a string by inserting a null (0) character.  See
  553.                _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++).
  554.  
  555.           _s_r_<<<<_<<<<_ffff_llll_uuuu_ssss_hhhh
  556.                Flushes _oooo_uuuu_tttt_ssss.  See _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++).
  557.  
  558.      Several parameterized manipulators that operate on _iiii_oooo_ssss objects are
  559.      described in _mmmm_aaaa_nnnn_iiii_pppp(3C++):  _ssss_eeee_tttt_wwww, _ssss_eeee_tttt_ffff_iiii_llll_llll, _ssss_eeee_tttt_pppp_rrrr_eeee_cccc_iiii_ssss_iiii_oooo_nnnn, _ssss_eeee_tttt_iiii_oooo_ssss_ffff_llll_aaaa_gggg_ssss, and
  560.      _rrrr_eeee_ssss_eeee_tttt_iiii_oooo_ssss_ffff_llll_aaaa_gggg_ssss.
  561.  
  562.      The _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff associated with an _iiii_oooo_ssss may be manipulated by other methods
  563.      than through the _iiii_oooo_ssss.  For example, characters may be stored in a
  564.      queuelike _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff through an _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm while they are being fetched
  565.      through an _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm.  Or for efficiency some part of a program may choose
  566.      to do _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff operations directly rather than through the _iiii_oooo_ssss.  In most
  567.      cases the program does not have to worry about this possibility, because
  568.      an _iiii_oooo_ssss never saves information about the internal state of a _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff.
  569.      For example, if the _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff is repositioned between extraction
  570.      operations the extraction (input) will proceed normally.
  571.  
  572. CCCCAAAAVVVVEEEEAAAATTTTSSSS
  573.      The need for _ssss_yyyy_nnnn_cccc______wwww_iiii_tttt_hhhh______ssss_tttt_dddd_iiii_oooo is a wart.  The old stream package did this
  574.      as a default, but in the iostream package unbuffered _ssss_tttt_dddd_iiii_oooo_bbbb_uuuu_ffffs are too
  575.      inefficient to be the default.
  576.  
  577.      The stream package had a constructor that took a _FFFF_IIII_LLLL_EEEE_**** argument.  This is
  578.      now replaced by _ssss_tttt_dddd_iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm.  It is not declared even as an obsolete form
  579.      to avoid having _iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh depend on _ssss_tttt_dddd_iiii_oooo_...._hhhh.
  580.  
  581.      The old stream package allowed copying of streams.  This is disallowed by
  582.      the iostream package.  However, objects of type _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn,
  583.      _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn, and _iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn can be assigned to.  Old code
  584.      using copying can usually be rewritten to use pointers or these classes.
  585.      (The standard streams _cccc_iiii_nnnn, _cccc_oooo_uuuu_tttt, _cccc_eeee_rrrr_rrrr, and _cccc_llll_oooo_gggg are members of
  586.      ``withassign'' classes, so they can be assigned to, as in
  587.      _cccc_iiii_nnnn _==== _iiii_nnnn_pppp_uuuu_tttt_ffff_ssss_tttt_rrrr_eeee_aaaa_mmmm.)
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. IIIIOOOOSSSS((((3333CCCC++++++++))))                                                            IIIIOOOOSSSS((((3333CCCC++++++++))))
  599.  
  600.  
  601.  
  602. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  603.      _iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++), _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff(3C++), _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++), _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm(3C++),
  604.      _mmmm_aaaa_nnnn_iiii_pppp(3C++).
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.