⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ostream

📁 symbian上STL模板库的实现
💻
📖 第 1 页 / 共 2 页
字号:
// Output streams -*- C++ -*-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003// Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library.  This library is free// software; you can redistribute it and/or modify it under the// terms of the GNU General Public License as published by the// Free Software Foundation; either version 2, or (at your option)// any later version.// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License along// with this library; see the file COPYING.  If not, write to the Free// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,// USA.// As a special exception, you may use this file as part of a free software// library without restriction.  Specifically, if other files instantiate// templates or use macros or inline functions from this file, or you compile// this file and link it with other files to produce an executable, this// file does not by itself cause the resulting executable to be covered by// the GNU General Public License.  This exception does not however// invalidate any other reasons why the executable file might be covered by// the GNU General Public License.//// ISO C++ 14882: 27.6.2  Output streams///** @file ostream *  This is a Standard C++ Library header.  You should @c #include this header *  in your programs, rather than any of the "st[dl]_*.h" implementation files. */#ifndef _GLIBCXX_OSTREAM#define _GLIBCXX_OSTREAM 1//#pragma GCC system_header#include <ios>namespace std{  // [27.6.2.1] Template class basic_ostream  /**   *  @brief  Controlling output.   *   *  This is the base class for all output streams.  It provides text   *  formatting of all builtin types, and communicates with any class   *  derived from basic_streambuf to do the actual output.  */  template<typename _CharT, typename _Traits>    class basic_ostream : virtual public basic_ios<_CharT, _Traits>    {    public:      // Types (inherited from basic_ios (27.4.4)):      typedef _CharT                     		char_type;      typedef typename _Traits::int_type 		int_type;      typedef typename _Traits::pos_type 		pos_type;      typedef typename _Traits::off_type 		off_type;      typedef _Traits                    		traits_type;            // Non-standard Types:      typedef basic_streambuf<_CharT, _Traits> 		__streambuf_type;      typedef basic_ios<_CharT, _Traits>		__ios_type;      typedef basic_ostream<_CharT, _Traits>		__ostream_type;      typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >              							__num_put_type;      typedef ctype<_CharT>           			__ctype_type;      template<typename _CharT2, typename _Traits2>        friend basic_ostream<_CharT2, _Traits2>&        operator<<(basic_ostream<_CharT2, _Traits2>&, _CharT2);       template<typename _Traits2>        friend basic_ostream<char, _Traits2>&        operator<<(basic_ostream<char, _Traits2>&, char);       template<typename _CharT2, typename _Traits2>        friend basic_ostream<_CharT2, _Traits2>&        operator<<(basic_ostream<_CharT2, _Traits2>&, const _CharT2*);       template<typename _Traits2>        friend basic_ostream<char, _Traits2>&        operator<<(basic_ostream<char, _Traits2>&, const char*);       template<typename _CharT2, typename _Traits2>        friend basic_ostream<_CharT2, _Traits2>&        operator<<(basic_ostream<_CharT2, _Traits2>&, const char*);      // [27.6.2.2] constructor/destructor      /**       *  @brief  Base constructor.       *       *  This ctor is almost never called by the user directly, rather from       *  derived classes' initialization lists, which pass a pointer to       *  their own stream buffer.      */      explicit       basic_ostream(__streambuf_type* __sb)      { this->init(__sb); }      /**       *  @brief  Base destructor.       *       *  This does very little apart from providing a virtual base dtor.      */      virtual       ~basic_ostream() { }      // [27.6.2.3] prefix/suffix      class sentry;      friend class sentry;            // [27.6.2.5] formatted output      // [27.6.2.5.3]  basic_ostream::operator<<      //@{      /**       *  @brief  Interface for manipulators.       *       *  Manuipulators such as @c std::endl and @c std::hex use these       *  functions in constructs like "std::cout << std::endl".  For more       *  information, see the iomanip header.      */      inline __ostream_type&      operator<<(__ostream_type& (*__pf)(__ostream_type&));            inline __ostream_type&      operator<<(__ios_type& (*__pf)(__ios_type&));            inline __ostream_type&      operator<<(ios_base& (*__pf) (ios_base&));      //@}      // [27.6.2.5.2] arithmetic inserters      /**       *  @name Arithmetic Inserters       *       *  All the @c operator<< functions (aka <em>formatted output       *  functions</em>) have some common behavior.  Each starts by       *  constructing a temporary object of type std::basic_ostream::sentry.       *  This can have several effects, concluding with the setting of a       *  status flag; see the sentry documentation for more.       *       *  If the sentry status is good, the function tries to generate       *  whatever data is appropriate for the type of the argument.       *       *  If an exception is thrown during insertion, ios_base::badbit       *  will be turned on in the stream's error state without causing an       *  ios_base::failure to be thrown.  The original exception will then       *  be rethrown.      */      //@{      /**       *  @brief  Basic arithmetic inserters       *  @param  A variable of builtin type.       *  @return  @c *this if successful       *       *  These functions use the stream's current locale (specifically, the       *  @c num_get facet) to perform numeric formatting.      */      __ostream_type&       operator<<(long __n);            __ostream_type&       operator<<(unsigned long __n);      __ostream_type&       operator<<(bool __n);      __ostream_type&       operator<<(short __n)      { 	ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;	if (__fmt & ios_base::oct || __fmt & ios_base::hex)	  return this->operator<<(static_cast<unsigned long>				  (static_cast<unsigned short>(__n)));	else	  return this->operator<<(static_cast<long>(__n));      }      __ostream_type&       operator<<(unsigned short __n)      { return this->operator<<(static_cast<unsigned long>(__n)); }      __ostream_type&       operator<<(int __n)      { 	ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;	if (__fmt & ios_base::oct || __fmt & ios_base::hex)	  return this->operator<<(static_cast<unsigned long>				  (static_cast<unsigned int>(__n)));	else	  return this->operator<<(static_cast<long>(__n));      }      __ostream_type&       operator<<(unsigned int __n)      { return this->operator<<(static_cast<unsigned long>(__n)); }#ifdef _GLIBCXX_USE_LONG_LONG      __ostream_type&       operator<<(long long __n);      __ostream_type&       operator<<(unsigned long long __n);#endif      __ostream_type&       operator<<(double __f);      __ostream_type&       operator<<(float __f)      { return this->operator<<(static_cast<double>(__f)); }      __ostream_type&       operator<<(long double __f);      __ostream_type&       operator<<(const void* __p);      /**       *  @brief  Extracting from another streambuf.       *  @param  sb  A pointer to a streambuf       *       *  This function behaves like one of the basic arithmetic extractors,       *  in that it also constructs a sentry object and has the same error       *  handling behavior.       *       *  If @a sb is NULL, the stream will set failbit in its error state.       *       *  Characters are extracted from @a sb and inserted into @c *this       *  until one of the following occurs:       *       *  - the input stream reaches end-of-file,       *  - insertion into the output sequence fails (in this case, the       *    character that would have been inserted is not extracted), or       *  - an exception occurs while getting a character from @a sb, which       *    sets failbit in the error state       *       *  If the function inserts no characters, failbit is set.      */      __ostream_type&       operator<<(__streambuf_type* __sb);      //@}      // [27.6.2.6] unformatted output functions      /**       *  @name Unformatted Output Functions       *       *  All the unformatted output functions have some common behavior.       *  Each starts by constructing a temporary object of type       *  std::basic_ostream::sentry.  This has several effects, concluding       *  with the setting of a status flag; see the sentry documentation       *  for more.       *       *  If the sentry status is good, the function tries to generate       *  whatever data is appropriate for the type of the argument.       *       *  If an exception is thrown during insertion, ios_base::badbit       *  will be turned on in the stream's error state.  If badbit is on in       *  the stream's exceptions mask, the exception will be rethrown       *  without completing its actions.      */      //@{      /**       *  @brief  Simple insertion.       *  @param  c  The character to insert.       *  @return  *this       *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -