35 #define _OSTREAM_TCC 1
37 #pragma GCC system_header
41 namespace std _GLIBCXX_VISIBILITY(default)
43 _GLIBCXX_BEGIN_NAMESPACE_VERSION
45 template<
typename _CharT,
typename _Traits>
48 : _M_ok(false), _M_os(__os)
60 template<
typename _CharT,
typename _Traits>
61 template<
typename _ValueT>
73 if (__np.
put(*
this, *
this, this->fill(), __v).failed())
79 __throw_exception_again;
89 template<
typename _CharT,
typename _Traits>
90 basic_ostream<_CharT, _Traits>&
98 return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
100 return _M_insert(static_cast<long>(__n));
103 template<
typename _CharT,
typename _Traits>
112 return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
114 return _M_insert(static_cast<long>(__n));
117 template<
typename _CharT,
typename _Traits>
124 if (__cerb && __sbin)
128 if (!__copy_streambufs(__sbin, this->
rdbuf()))
134 __throw_exception_again;
146 template<
typename _CharT,
typename _Traits>
163 const int_type __put = this->
rdbuf()->sputc(__c);
164 if (traits_type::eq_int_type(__put, traits_type::eof()))
170 __throw_exception_again;
180 template<
typename _CharT,
typename _Traits>
198 if (this->
rdbuf()->sputn(__s, __n) != __n)
204 __throw_exception_again;
214 template<
typename _CharT,
typename _Traits>
232 if (this->
rdbuf()->pubsync() == -1)
238 __throw_exception_again;
249 template<
typename _CharT,
typename _Traits>
250 typename basic_ostream<_CharT, _Traits>::pos_type
255 pos_type __ret = pos_type(-1);
261 template<
typename _CharT,
typename _Traits>
274 if (__p == pos_type(off_type(-1)))
280 template<
typename _CharT,
typename _Traits>
283 seekp(off_type __off, ios_base::seekdir __dir)
290 const pos_type __p = this->
rdbuf()->pubseekoff(__off, __dir,
294 if (__p == pos_type(off_type(-1)))
300 template<
typename _CharT,
typename _Traits>
302 operator<<(basic_ostream<_CharT, _Traits>& __out,
const char* __s)
316 __ptr_guard (_CharT *__ip): __p(__ip) { }
317 ~__ptr_guard() {
delete[] __p; }
318 _CharT* __get() {
return __p; }
319 } __pg (
new _CharT[__clen]);
321 _CharT *__ws = __pg.__get();
322 for (
size_t __i = 0; __i < __clen; ++__i)
323 __ws[__i] = __out.widen(__s[__i]);
324 __ostream_insert(__out, __ws, __clen);
329 __throw_exception_again;
339 #if _GLIBCXX_EXTERN_TEMPLATE
340 extern template class basic_ostream<char>;
351 extern template ostream& ostream::_M_insert(
long);
352 extern template ostream& ostream::_M_insert(
unsigned long);
353 extern template ostream& ostream::_M_insert(
bool);
354 #ifdef _GLIBCXX_USE_LONG_LONG
355 extern template ostream& ostream::_M_insert(
long long);
356 extern template ostream& ostream::_M_insert(
unsigned long long);
358 extern template ostream& ostream::_M_insert(
double);
359 extern template ostream& ostream::_M_insert(
long double);
360 extern template ostream& ostream::_M_insert(
const void*);
362 #ifdef _GLIBCXX_USE_WCHAR_T
363 extern template class basic_ostream<wchar_t>;
372 extern template wostream& wostream::_M_insert(
long);
373 extern template wostream& wostream::_M_insert(
unsigned long);
374 extern template wostream& wostream::_M_insert(
bool);
375 #ifdef _GLIBCXX_USE_LONG_LONG
376 extern template wostream& wostream::_M_insert(
long long);
377 extern template wostream& wostream::_M_insert(
unsigned long long);
379 extern template wostream& wostream::_M_insert(
double);
380 extern template wostream& wostream::_M_insert(
long double);
381 extern template wostream& wostream::_M_insert(
const void*);
385 _GLIBCXX_END_NAMESPACE_VERSION
Performs setup work for output streams.
static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf.
bool fail() const
Fast error checking.
__ostream_type & flush()
Synchronizing the stream buffer.
Thrown as part of forced unwinding.A magic placeholder class that can be caught by reference to recog...
iter_type put(iter_type __s, ios_base &__io, char_type __fill, bool __v) const
Numeric formatting.
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
static const fmtflags oct
Converts integer input or generates integer output in octal base.
basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
Write a newline and flush the stream.
basic_ostream< char > ostream
Base class for char output streams.
__ostream_type & seekp(pos_type)
Changing the current write position.
The actual work of input and output (interface).
static const seekdir cur
Request a seek relative to the current position within the sequence.
pos_type tellp()
Getting the current write position.
static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
Primary class template num_put.This facet encapsulates the code to convert a number to a string...
fmtflags flags() const
Access to format flags.
static const openmode out
Open for output. Default for ofstream and fstream.
static const iostate goodbit
Indicates all is well.
basic_ostream< _CharT, _Traits > * tie() const
Fetches the current tied stream.
Template class basic_ostream.
bool bad() const
Fast error checking.
basic_ostream< _CharT, _Traits > & ends(basic_ostream< _CharT, _Traits > &__os)
Write a null character into the output sequence.
sentry(basic_ostream< _CharT, _Traits > &__os)
The constructor performs preparatory work.
__ostream_type & operator<<(__ostream_type &(*__pf)(__ostream_type &))
Interface for manipulators.
__ostream_type & put(char_type __c)
Simple insertion.
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Basis for explicit traits specializations.
void setstate(iostate __state)
Sets additional flags in the error state.
__ostream_type & write(const char_type *__s, streamsize __n)
Character string insertion.
bool good() const
Fast error checking.