35 #define _OSTREAM_TCC 1 37 #ifdef _GLIBCXX_SYSHDR 38 #pragma GCC system_header 40 #pragma GCC diagnostic push 41 #pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template 45 namespace std _GLIBCXX_VISIBILITY(default)
47 _GLIBCXX_BEGIN_NAMESPACE_VERSION
49 template<
typename _CharT,
typename _Traits>
52 : _M_ok(false), _M_os(__os)
55 if (__os.tie() && __os.good())
64 template<
typename _CharT,
typename _Traits>
65 template<
typename _ValueT>
76 #ifndef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT 80 = use_facet<__num_put_type>(this->_M_ios_locale);
82 if (__np.
put(*
this, *
this, this->fill(), __v).failed())
88 __throw_exception_again;
98 template<
typename _CharT,
typename _Traits>
99 basic_ostream<_CharT, _Traits>&
107 return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
109 return _M_insert(static_cast<long>(__n));
112 template<
typename _CharT,
typename _Traits>
121 return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
123 return _M_insert(static_cast<long>(__n));
126 template<
typename _CharT,
typename _Traits>
132 sentry __cerb(*
this);
133 if (__cerb && __sbin)
137 if (!__copy_streambufs(__sbin, this->
rdbuf()))
143 __throw_exception_again;
155 template<
typename _CharT,
typename _Traits>
166 sentry __cerb(*
this);
173 if (traits_type::eq_int_type(__put, traits_type::eof()))
179 __throw_exception_again;
189 template<
typename _CharT,
typename _Traits>
201 sentry __cerb(*
this);
207 if (this->
rdbuf()->sputn(__s, __n) != __n)
213 __throw_exception_again;
223 template<
typename _CharT,
typename _Traits>
235 sentry __cerb(*
this);
241 if (this->
rdbuf()->pubsync() == -1)
247 __throw_exception_again;
258 template<
typename _CharT,
typename _Traits>
259 typename basic_ostream<_CharT, _Traits>::pos_type
263 sentry __cerb(*
this);
270 template<
typename _CharT,
typename _Traits>
275 sentry __cerb(*
this);
289 template<
typename _CharT,
typename _Traits>
294 sentry __cerb(*
this);
309 template<
typename _CharT,
typename _Traits>
311 operator<<(basic_ostream<_CharT, _Traits>& __out,
const char* __s)
325 __ptr_guard (_CharT *__ip): __p(__ip) { }
326 ~__ptr_guard() {
delete[] __p; }
327 _CharT* __get() {
return __p; }
328 } __pg (
new _CharT[__clen]);
330 _CharT *__ws = __pg.__get();
331 for (
size_t __i = 0; __i < __clen; ++__i)
332 __ws[__i] = __out.widen(__s[__i]);
333 __ostream_insert(__out, __ws, __clen);
338 __throw_exception_again;
348 #if _GLIBCXX_EXTERN_TEMPLATE 349 extern template class basic_ostream<char>;
360 extern template ostream& ostream::_M_insert(
long);
361 extern template ostream& ostream::_M_insert(
unsigned long);
362 extern template ostream& ostream::_M_insert(
bool);
363 #ifdef _GLIBCXX_USE_LONG_LONG 364 #pragma GCC diagnostic push 365 #pragma GCC diagnostic ignored "-Wlong-long" 366 extern template ostream& ostream::_M_insert(
long long);
367 extern template ostream& ostream::_M_insert(
unsigned long long);
368 #pragma GCC diagnostic pop 370 extern template ostream& ostream::_M_insert(
double);
371 extern template ostream& ostream::_M_insert(
long double);
372 extern template ostream& ostream::_M_insert(
const void*);
374 #ifdef _GLIBCXX_USE_WCHAR_T 375 extern template class basic_ostream<wchar_t>;
384 extern template wostream& wostream::_M_insert(
long);
385 extern template wostream& wostream::_M_insert(
unsigned long);
386 extern template wostream& wostream::_M_insert(
bool);
387 #ifdef _GLIBCXX_USE_LONG_LONG 388 #pragma GCC diagnostic push 389 #pragma GCC diagnostic ignored "-Wlong-long" 390 extern template wostream& wostream::_M_insert(
long long);
391 extern template wostream& wostream::_M_insert(
unsigned long long);
392 #pragma GCC diagnostic pop 394 extern template wostream& wostream::_M_insert(
double);
395 extern template wostream& wostream::_M_insert(
long double);
396 extern template wostream& wostream::_M_insert(
const void*);
400 _GLIBCXX_END_NAMESPACE_VERSION
403 #pragma GCC diagnostic pop __ostream_type & flush()
Synchronizing the stream buffer.
__ostream_type & seekp(pos_type)
Changing the current write position.
basic_ostream< char > ostream
Base class for char output streams.
static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
iter_type put(iter_type __s, ios_base &__io, char_type __fill, bool __v) const
Numeric formatting.
_Traits::int_type int_type
Basis for explicit traits specializations.
Thrown as part of forced unwinding.A magic placeholder class that can be caught by reference to recog...
bool fail() const
Fast error checking.
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.
Performs setup work for output streams.
basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
Write a newline and flush the stream.
Primary class template num_put.This facet encapsulates the code to convert a number to a string...
sentry(basic_ostream< _CharT, _Traits > &__os)
The constructor performs preparatory work.
static const fmtflags oct
Converts integer input or generates integer output in octal base.
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
void setstate(iostate __state)
Sets additional flags in the error state.
static const iostate goodbit
Indicates all is well.
_Traits::pos_type pos_type
static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
static const seekdir cur
Request a seek relative to the current position within the sequence.
ISO C++ entities toplevel namespace is std.
static const openmode out
Open for output. Default for ofstream and fstream.
_Traits::off_type off_type
__ostream_type & write(const char_type *__s, streamsize __n)
Character string insertion.
Template class basic_ostream.
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
pos_type tellp()
Getting the current write position.
__ostream_type & put(char_type __c)
Simple insertion.
__ostream_type & operator<<(__ostream_type &(*__pf)(__ostream_type &))
Interface for manipulators.
fmtflags flags() const
Access to format flags.
basic_ostream< _CharT, _Traits > & ends(basic_ostream< _CharT, _Traits > &__os)
Write a null character into the output sequence.