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>
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>
123 sentry __cerb(*
this);
124 if (__cerb && __sbin)
128 if (!__copy_streambufs(__sbin, this->
rdbuf()))
134 __throw_exception_again;
146 template<
typename _CharT,
typename _Traits>
157 sentry __cerb(*
this);
164 if (traits_type::eq_int_type(__put, traits_type::eof()))
170 __throw_exception_again;
180 template<
typename _CharT,
typename _Traits>
192 sentry __cerb(*
this);
198 if (this->
rdbuf()->sputn(__s, __n) != __n)
204 __throw_exception_again;
214 template<
typename _CharT,
typename _Traits>
226 sentry __cerb(*
this);
232 if (this->
rdbuf()->pubsync() == -1)
238 __throw_exception_again;
249 template<
typename _CharT,
typename _Traits>
250 typename basic_ostream<_CharT, _Traits>::pos_type
254 sentry __cerb(*
this);
261 template<
typename _CharT,
typename _Traits>
266 sentry __cerb(*
this);
280 template<
typename _CharT,
typename _Traits>
285 sentry __cerb(*
this);
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
static const openmode out
Open for output. Default for ofstream and fstream.
basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
Thrown as part of forced unwinding.A magic placeholder class that can be caught by reference to recog...
Primary class template num_put.This facet encapsulates the code to convert a number to a string...
__ostream_type & operator<<(__ostream_type &(*__pf)(__ostream_type &))
Interface for manipulators.
static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
Performs setup work for output streams.
basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
Write a newline and flush the stream.
__ostream_type & write(const char_type *__s, streamsize __n)
Character string insertion.
fmtflags flags() const
Access to format flags.
__ostream_type & put(char_type __c)
Simple insertion.
static const seekdir cur
Request a seek relative to the current position within the sequence.
sentry(basic_ostream< _CharT, _Traits > &__os)
The constructor performs preparatory work.
Basis for explicit traits specializations.
basic_ostream< _CharT, _Traits > & ends(basic_ostream< _CharT, _Traits > &__os)
Write a null character into the output sequence.
__ostream_type & seekp(pos_type)
Changing the current write position.
ISO C++ entities toplevel namespace is std.
static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
_Traits::pos_type pos_type
__ostream_type & flush()
Synchronizing the stream buffer.
_Traits::int_type int_type
basic_ostream< char > ostream
Base class for char output streams.
Template class basic_ostream.
static const iostate goodbit
Indicates all is well.
basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf.
static const fmtflags oct
Converts integer input or generates integer output in octal base.
_Traits::off_type off_type
pos_type tellp()
Getting the current write position.
bool fail() const
Fast error checking.
iter_type put(iter_type __s, ios_base &__io, char_type __fill, bool __v) const
Numeric formatting.
void setstate(iostate __state)
Sets additional flags in the error state.
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...