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)
51 if (__os.tie() && __os.good())
60 template<
typename _CharT,
typename _Traits>
61 template<
typename _ValueT>
72 #ifndef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT 76 = use_facet<__num_put_type>(this->_M_ios_locale);
78 if (__np.
put(*
this, *
this, this->fill(), __v).failed())
84 __throw_exception_again;
94 template<
typename _CharT,
typename _Traits>
95 basic_ostream<_CharT, _Traits>&
103 return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
105 return _M_insert(static_cast<long>(__n));
108 template<
typename _CharT,
typename _Traits>
117 return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
119 return _M_insert(static_cast<long>(__n));
122 template<
typename _CharT,
typename _Traits>
128 sentry __cerb(*
this);
129 if (__cerb && __sbin)
133 if (!__copy_streambufs(__sbin, this->
rdbuf()))
139 __throw_exception_again;
151 template<
typename _CharT,
typename _Traits>
162 sentry __cerb(*
this);
169 if (traits_type::eq_int_type(__put, traits_type::eof()))
175 __throw_exception_again;
185 template<
typename _CharT,
typename _Traits>
197 sentry __cerb(*
this);
203 if (this->
rdbuf()->sputn(__s, __n) != __n)
209 __throw_exception_again;
219 template<
typename _CharT,
typename _Traits>
231 sentry __cerb(*
this);
237 if (this->
rdbuf()->pubsync() == -1)
243 __throw_exception_again;
254 template<
typename _CharT,
typename _Traits>
255 typename basic_ostream<_CharT, _Traits>::pos_type
259 sentry __cerb(*
this);
266 template<
typename _CharT,
typename _Traits>
271 sentry __cerb(*
this);
285 template<
typename _CharT,
typename _Traits>
290 sentry __cerb(*
this);
305 template<
typename _CharT,
typename _Traits>
307 operator<<(basic_ostream<_CharT, _Traits>& __out,
const char* __s)
321 __ptr_guard (_CharT *__ip): __p(__ip) { }
322 ~__ptr_guard() {
delete[] __p; }
323 _CharT* __get() {
return __p; }
324 } __pg (
new _CharT[__clen]);
326 _CharT *__ws = __pg.__get();
327 for (
size_t __i = 0; __i < __clen; ++__i)
328 __ws[__i] = __out.widen(__s[__i]);
329 __ostream_insert(__out, __ws, __clen);
334 __throw_exception_again;
344 #if _GLIBCXX_EXTERN_TEMPLATE 345 extern template class basic_ostream<char>;
356 extern template ostream& ostream::_M_insert(
long);
357 extern template ostream& ostream::_M_insert(
unsigned long);
358 extern template ostream& ostream::_M_insert(
bool);
359 #ifdef _GLIBCXX_USE_LONG_LONG 360 extern template ostream& ostream::_M_insert(
long long);
361 extern template ostream& ostream::_M_insert(
unsigned long long);
363 extern template ostream& ostream::_M_insert(
double);
364 extern template ostream& ostream::_M_insert(
long double);
365 extern template ostream& ostream::_M_insert(
const void*);
367 #ifdef _GLIBCXX_USE_WCHAR_T 368 extern template class basic_ostream<wchar_t>;
377 extern template wostream& wostream::_M_insert(
long);
378 extern template wostream& wostream::_M_insert(
unsigned long);
379 extern template wostream& wostream::_M_insert(
bool);
380 #ifdef _GLIBCXX_USE_LONG_LONG 381 extern template wostream& wostream::_M_insert(
long long);
382 extern template wostream& wostream::_M_insert(
unsigned long long);
384 extern template wostream& wostream::_M_insert(
double);
385 extern template wostream& wostream::_M_insert(
long double);
386 extern template wostream& wostream::_M_insert(
const void*);
390 _GLIBCXX_END_NAMESPACE_VERSION
Template class basic_ostream.
basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
Write a newline and flush the stream.
static const seekdir cur
Request a seek relative to the current position within the sequence.
basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
pos_type tellp()
Getting the current write position.
__ostream_type & write(const char_type *__s, streamsize __n)
Character string insertion.
static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
void setstate(iostate __state)
Sets additional flags in the error state.
basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
Primary class template num_put.This facet encapsulates the code to convert a number to a string...
Performs setup work for output streams.
iter_type put(iter_type __s, ios_base &__io, char_type __fill, bool __v) const
Numeric formatting.
__ostream_type & flush()
Synchronizing the stream buffer.
static const iostate goodbit
Indicates all is well.
ISO C++ entities toplevel namespace is std.
basic_ostream< _CharT, _Traits > & ends(basic_ostream< _CharT, _Traits > &__os)
Write a null character into the output sequence.
Thrown as part of forced unwinding.A magic placeholder class that can be caught by reference to recog...
_Traits::int_type int_type
_Traits::pos_type pos_type
__ostream_type & operator<<(__ostream_type &(*__pf)(__ostream_type &))
Interface for manipulators.
fmtflags flags() const
Access to format flags.
static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
__ostream_type & seekp(pos_type)
Changing the current write position.
Basis for explicit traits specializations.
_Traits::off_type off_type
sentry(basic_ostream< _CharT, _Traits > &__os)
The constructor performs preparatory work.
basic_ostream< char > ostream
Base class for char output streams.
bool fail() const
Fast error checking.
static const fmtflags oct
Converts integer input or generates integer output in octal base.
__ostream_type & put(char_type __c)
Simple insertion.
static const openmode out
Open for output. Default for ofstream and fstream.
static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf.